【问题标题】:Call a javascript function from the activity?从活动中调用javascript函数?
【发布时间】:2011-04-01 02:33:50
【问题描述】:

如何使用我的活动中的按钮调用加载到 webView 中的 HTML 文档中的函数?即:一个ImageButton(称为:bookBtn)在活动的标题栏中。当它被按下/点击时,我需要它在 webView DOM 中触发一个函数——它基本上将一个新的 HTML 文档加载到 DOM 中,实现滑入效果。

我发现了大量关于如何从 webView 到活动的文档,但反之则没有。谷歌说它can be done,但真的没有任何例子。我试图修改他们显示的示例代码here,但我无法让它工作。感谢您的意见。

以下是加载到 webView mWebView 中的 HTML 文档中的函数:

    <script type="text/javascript">
    $(document).ready(function() {
        function loadTOC(){$.mobile.changePage("docs/1-1.html", "slideup");
        };
    });
</script>

...在我的主要活动中,我根据 Google 文档尝试了此操作,但不起作用:

    ImageButton imageButton = (ImageButton) findViewById(R.id.bookBtn);
    imageButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
        mHandler.post(new Runnable() {
            public void run() {
                mWebView.loadUrl("javascript:loadTOC");
            }
        });
        }
    });

【问题讨论】:

    标签: javascript android dom webview


    【解决方案1】:

    代码中至少有两个问题:

    1) javascript URL 不调用 loadTOC 函数,它只是引用它。你想要的是:

    mWebView.loadUrl("javascript:loadTOC()");
    

    2) loadTOC 函数在 AFAIK 中不是全局可见的,因此 javascript URL 将无法访问它。

    您还应该确保 JavaScript 已按照 no-good-at-coding 的建议启用。

    【讨论】:

    • Thnk - 我错过了圆括号,但这不是修复。
    【解决方案2】:

    我在这里看不到,所以我要补充一点,你应该确保你有

    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.getSettings().setJavaScriptEnabled(true);.
    

    在您的 Android 代码中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      相关资源
      最近更新 更多