Javascript 从Android活动向JS函数返回字符串
我正在从本机android活动向JS函数传递一个值,但没有调用该函数 java方法Javascript 从Android活动向JS函数返回字符串,javascript,android,android-webview,Javascript,Android,Android Webview,我正在从本机android活动向JS函数传递一个值,但没有调用该函数 java方法 public void Jmethod() { //index is the WebView index.loadUrl("javascript: window.SetImage("+selectedImagePath+");"); } JS函数 function SetImage(ImgPath) { alert('this function called'); } 这是Lo
public void Jmethod()
{
//index is the WebView
index.loadUrl("javascript: window.SetImage("+selectedImagePath+");");
}
JS函数
function SetImage(ImgPath)
{
alert('this function called');
}
这是LogCat说的
03-31 12:27:23.668: D/webview(30574): blockWebkitViewMessage= false
03-31 12:27:24.483: W/IInputConnectionWrapper(30574): showStatusIcon on inactive InputConnection
03-31 12:27:24.493: D/chromium(30574): Unknown chromium error: -6
03-31 12:27:27.438: D/WebView(30574): loadUrlImpl: called
03-31 12:27:27.438: D/webcore(30574): CORE loadUrl: called
03-31 12:27:27.438: D/webkit(30574): Firewall not null
03-31 12:27:27.438: D/webkit(30574): euler: isUrlBlocked = false
我正在成功地从webview调用java函数,但这不起作用,请告诉我哪里错了。您启用了djavascript吗
myWebView.getSettings().setJavaScriptEnabled(true);
您可能还希望删除javascript和window.SetImage之间的空间 当您说没有调用javascript函数时,您的意思是,还是说没有显示警报对话框 如果是后者,则需要在WebView上设置默认WebChromeClient以显示UI
myWebView.setWebChromeClient(new WebChromeClient());
我已经在当地测试过了,它对我很有效。我希望你能从中得到一些想法:) //爪哇
final String image = "image url";
index.getSettings().setJavaScriptEnabled(true);
index.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
//make sure to put the single quote inside argument.
view.loadUrl("javascript:window.SetImage('" + image + "')");
}
});
index.setWebChromeClient(new WebChromeClient());
index.loadUrl("file:///android_asset/index.html");
//此函数将位于index.html中
function SetImage(imageUrl)
{
alert(imageUrl);
}
问题只是这些“”。。。 通过添加 loadUrl(“javascript:SetImage(“+selectedImagePath+”)”)
请检查javascript和window.SetImage之间的空间。啊,看来您也需要注册javascript接口。所以你就这样做<代码>webSettings.setJavaScriptEnabled(true);addJavascriptInterface(新的JavaScriptInterface(this),“MyAndroid”)代码>你可以看看这个[链接]它已经添加了。。。所有的问题都是这些“小恶魔”嗯,我注意到你现在有太多了“,它会很容易使用”,而不是“没有显示好的警报,我用这种方式检查它。