从Android上的JavaScript访问UI

前端之家收集整理的这篇文章主要介绍了从Android上的JavaScript访问UI前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
出于某些原因,我必须在我的 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
    }
});
原文链接:https://www.f2er.com/android/313894.html

猜你在找的Android相关文章