从Android上的JavaScript访问UI

从Android上的JavaScript访问UI,第1张

概述出于某些原因,我必须在我的 Android应用程序中使用WebView,并且部分业务逻辑包含在 JavaScript中(我使用addJavascriptInterface()运行它).问题是我无法从绑定到脚本的对象修改我的应用程序的UI组件.这在文档中解释: Note: The object that is bound to your JavaScript runs in another thre 出于某些原因,我必须在我的 Android应用程序中使用WebVIEw,并且部分业务逻辑包含在 JavaScript中(我使用addJavaScriptInterface()运行它).问题是我无法从绑定到脚本的对象修改我的应用程序的UI组件.这在文档中解释:

Note: The object that is bound to your JavaScript runs in another
thread and not in the thread in which it was constructed.

我想知道这个问题是否有一些解决方法?

解决方法 您需要将 Handler实例传递给JavaScript界面​​并使用它在那里发布runnables.如果将在UI线程上创建此处理程序,则还将在UI线程上调用runnables posted there.
Handler mHandler = new Handler(); // must be created on UI thread,e.g. in Activity onCreate// from JavaScript interface...mHandler.post(new Runnable() {    @OverrIDe    public voID run() {        // code here will run on UI thread    }});

另一种解决方法是使用Activity的方法runOnUIThread

mActivity.runOnUIThread(new Runnable() {    @OverrIDe    public voID run() {       // code here will run on UI thread    }});
总结

以上是内存溢出为你收集整理的从Android上的JavaScript访问UI全部内容,希望文章能够帮你解决从Android上的JavaScript访问UI所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1134456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存