从活动中调用javascript函数?

2 javascript android dom webview

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

我发现了很多关于如何从webView到活动的文档,但没有相反的方法.谷歌表示可以做到,但确实没有任何例子.我试着调整他们在这里展示的示例代码,但我无法让它工作.感谢任何输入.

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

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

...在我的主要活动中,我按照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");
            }
        });
        }
    });
Run Code Online (Sandbox Code Playgroud)

typ*_*.pl 8

代码中至少有两个问题:

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

mWebView.loadUrl("javascript:loadTOC()");
Run Code Online (Sandbox Code Playgroud)

2)该loadTOC功能不是全局可见的AFAIK,因此javascript URL将无法访问它.

您还应该确保启用JavaScript,因为编码没有良好的建议.