【问题标题】:Accessing js variable from android MainActivity从android MainActivity访问js变量
【发布时间】:2017-11-23 11:51:31
【问题描述】:

我想将 webapp 作为 android 应用程序访问,为此我所做的只是使用 webview 调用该 webapp 的 url。 Webapp 包含一个 js 变量,我想将该变量访问到 androids MainActivity,如何使用 android MainActivity 访问不同 webapp 中的 js 变量并为其赋值。以下是我的 MainActivity 代码 sn-p,

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mWebview = new WebView(this);

        mWebview.getSettings().setJavaScriptEnabled(true);
        mWebview.getSettings().setDatabaseEnabled(true);
        mWebview.getSettings().setLoadWithOverviewMode(true);

        mWebview.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
        mWebview.setScrollbarFadingEnabled(false);
        mWebview.loadUrl("http://www.mywebapp.com");

        setContentView(mWebview);


    }

我的主要问题是如何通过不同app/html中的androids MainActivity访问js变量并为其赋值?

【问题讨论】:

标签: javascript java android html webview


【解决方案1】:
     // Call method in js or html
 Android.getImageUrl("text");

    // add this line in main activity.    
     webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");

    // js value get in this method.(add this method in activity)
    public class JavaScriptInterface {
                Context mContext;

                JavaScriptInterface(Context c) {
                    mContext = c;
                }

                @JavascriptInterface
                public void getImageUrl(String text) {
        // js value get here.
                    }
                }
            }

【讨论】:

  • 我应该在哪里实现 getImageUrl();方法?
  • 可以在js或者html中调用这个方法
  • 是的,我会从 js/html 调用它,但是 getImageUrl() 方法定义在哪里实现?在 mainActivity 或其他地方?我是否应该实施它?很抱歉问了一些非常基本的问题,我是 android 新手。
猜你喜欢
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 2019-02-18
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
相关资源
最近更新 更多