首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android WebView JavaScript-桥在一段时间后变得不可用

Android WebView JavaScript-桥在一段时间后变得不可用
EN

Stack Overflow用户
提问于 2021-03-22 20:58:49
回答 1查看 63关注 0票数 0

我们开发了一个混合的android应用程序。为了在Webview和原生App-Code之间进行通信,我们通过以下方式建立了一个Javascript-Bridge:

代码语言:javascript
复制
webView.addJavascriptInterface(
    WebViewJavaScriptApi(),
    "androidJsBridge"
)

这可以很好地工作,我们可以在WebViewJavaScriptApi中调用本机应用程序代码。但是过了一段时间,一些函数似乎变得不可调用了。

我通过chrome远程调试工具对此进行了测试:加载webview并在控制台中调用androidJsBridge‘’myFunction‘后,我将获得“原生代码”作为返回值。几秒钟或几分钟后,我将得到“未定义”。

这在我的任何方法中都是随机发生的。任何可见的优先级或逻辑。

经过几个小时的调试,我们发现了这个:Android - Javascript Interface with pointer to WebView - how to achive it without memleak

垃圾收集确实可能是问题所在。此外,这个问题似乎只存在于几周或几个月之后。所以可能chrome webview更新做的是错误的事情?

有没有人有类似的问题?有可能防止JS对象被垃圾回收吗?

在我的JS-Code中,这些方法在明文中不可见。它们通过以下方式调用:

androidJsBridge[functionName](promiseId, params);

其中functionName是包含最终方法的字符串变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-23 16:00:43

谷歌在此期间解决了这个问题。请参阅:https://issuetracker.google.com/issues/185145178?pli=1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66746573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档