我使用JavaScriptInterface进行Web视图,并尝试使用Tag'a'检索元素数量。但是,当我尝试谷歌页面时,我没有得到任何结果。伙计们帮助我。
我使用了以下代码段。
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebViewJSObject(), "jsInjectedObject");
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
if(url.equalsIgnoreCase("http://www.google.com")){
view.loadUrl("javascript:(function(){var b = document.getElementsByTagName('a');jsInjectedObject.printInfo(b.length);})()");
}
}
});
webView.loadUrl("http://www.google.com");
class WebViewJSObject{
@JavascriptInterface
public void printInfo(String count){
Log.e(TAG, "entered PrintInfo");
Log.e(TAG, "A tags count :" + count);
}
}
答案 0 :(得分:0)
data = data.replace("%", "%25"); //Data here is the javascript or html data
data = data.replace("\\", "%27");
data = data.replace("?", "%3f");
WebSettings browserSettings = webView.getSettings();
browserSettings.setJavaScriptCanOpenWindowsAutomatically(true);
browserSettings.setJavaScriptEnabled(true);
browserSettings.setSupportMultipleWindows(true);
browserSettings.setBuiltInZoomControls(true);
browserSettings.setSupportZoom(true);
我希望这会有所帮助。另请参阅https://stackoverflow.com/a/19341180/2106338
答案 1 :(得分:0)
这可能会对你有所帮助......在创建时请执行
super.onCreate(savedInstanceState);
super.init();
JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface(this,appView);
appView.addJavascriptInterface(myJavaScriptInterface, "keyword");
super.loadUrl("file:///....../index.html", 1000);
和dn在创建
之后创建一个方法public class JavaScriptInterface {
private WebView mAppView;
private DroidGap mGap;
public JavaScriptInterface (DroidGap gap, WebView view)
{
mAppView = view;
mGap = gap;
}
public void methodname(){
}
}
并通过使用上述关键字
调用html来执行methodname方法中的功能