【发布时间】:2013-02-10 15:34:18
【问题描述】:
我在本机应用程序中使用WebView 和大量 JavaScript。如果 JS 端想调用原生函数,使用JavaScriptInterface 相当流畅。但是,如果 native 想要调用 JS 函数,就不是那么容易了。到目前为止,我已经尝试了两种解决方案:
- 使用
javascript:something()URL 调用loadUrl方法 - 不可接受,因为当用户在键盘上键入内容时WebView在函数执行后将其隐藏 - 每隔 x 秒向本机端请求函数(由
String对象提供)和 在结果上调用eval()- 有时在设置间隔 1 秒后,我会在 50-60 秒后收到这些请求!
我想知道是否还有其他方法可以实现这种通信模型。假设在应用程序内创建本地Socket/HTTP/something-else 服务器,并授予WebView 的访问权限。我正在寻找如何(如果可能的话)做到这一点的任何提示。
【问题讨论】: