我正在尝试访问我的Java方法helloWorld();。在Android中使用JavaScriptInterface,从我正在使用WebView查看的页面中

我对此有些陌生,我不知道为什么我没有在HTML页面中获取价值

这是我正在使用的Android代码:

WebView web;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    web = (WebView) findViewById(R.id.webview01);
    JavaScriptInterface jsInterface = new JavaScriptInterface(this);
    web.getSettings().setJavaScriptEnabled(true);
    web.addJavascriptInterface(jsInterface, "JSInterface");
    web.getSettings().setUseWideViewPort(true);
    web.getSettings().setLoadWithOverviewMode(true);
    web.setWebViewClient(new myWebClient());
    web.getSettings().setJavaScriptEnabled(true);
    web.loadUrl("http://exampleweb:10110/exWeb/deposits.jsp");
}

public class myWebClient extends WebViewClient
{
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub

        view.loadUrl(url);
        return true;

    }
}
public class JavaScriptInterface {
    private Activity activity;

    public JavaScriptInterface(Activity activity) {
        this.activity = activity;
    }
    @JavascriptInterface
    public String helloWorld(){
        return("hello world");
    }
}


}

这是我一直在使用的JavaScript代码(在我使用WebView查看的页面上)

HTML按钮

<td> <button type="button" class="btn btn-xs btn-primary connectToAndroid">Test android</button></td>


的JavaScript

$(".connectToAndroid").on('click', function () {
var val = window.JSInterface.helloWorld();
alert(val);
});


有人知道我在做什么错吗?我只想在HTML页面中从Android发出“ Hello World”警报。

任何指针,不胜感激!

最佳答案

尝试在加载网址之前添加以下代码行,并确保您在html中引用了jQuery库。

web.setWebChromeClient(new WebChromeClient(this));

10-07 19:41
查看更多