问题描述
在迁移到GeckoView的77.0.20200603183750版本之前,我们使用的是71.0.20191208234333版本,因此我们必须更改imp。 WebExtension实例的实例,它仅采用一个参数即JS文件的位置
来自:
currentGeckoView.session?.run{
getGeckoRuntime(this)?.run{
val extension = WebExtension("resource://android/assets/location_search/")
extension.setMessageDelegate(messageDelegate,"location_search")
registerWebExtension(extension)
}
settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_MOBILE
settings.userAgentOverride = "Mozilla/5.0 (Linux; Android ${Build.VERSION.RELEASE}; Mobile) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36"
settings.allowJavascript = true
progressDelegate = createProgressDelegate()
}
收件人:
currentGeckoView.session?.run{
val geckoRuntime = getGeckoRuntime(this)
geckoRuntime?.webExtensionController?.install("resource://android/assets/location_search/")
?.accept({ extension ->
extension?.setMessageDelegate(messageDelegate,"location_search")
geckoRuntime.registerWebExtension(extension!!)
},{ exception ->
Log.d("webExtensionController","Exception message from WebExtension: $exception"
)
})
settings.userAgentMode = GeckoSessionSettings.USER_AGENT_MODE_MOBILE
settings.userAgentOverride = "Mozilla/5.0 (Linux; Android ${Build.VERSION.RELEASE}; Mobile) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36"
settings.allowJavascript = true
progressDelegate = createProgressDelegate()
}
尽管JS注入成功,但这导致阻止传递网页的当前状态。由于进行了此操作,Session.loading
布尔字段仍然为true,即使页面已成功加载。
我们在迁移到新版本时使用了firefox-source-docs,在ensureBuiltIn
的77版本的WebExtensionController
实例上我们无法调用GeckoView
方法。
根据上述文档,我们需要像下面那样调用sureBuiltIn方法,但由于它已成为已编译的WebExtension.class中的内部方法,因此无法调用。
geckoRuntime.getWebExtensionController()
.ensureBuiltIn("resource://android/assets/messaging/","messaging@example.com")
.accept(
extension -> Log.i("MessageDelegate","Extension installed: " + extension),e -> Log.e("MessageDelegate","Error registering WebExtension",e)
);
在GeckoView中迁移到新版本的WebExtension时,有人能帮助我们解决我们缺少什么吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)