Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Android活动向JS函数返回字符串_Javascript_Android_Android Webview - Fatal编程技术网

Javascript 从Android活动向JS函数返回字符串

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

我正在从本机android活动向JS函数传递一个值,但没有调用该函数

java方法

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”)你可以看看这个[链接]它已经添加了。。。所有的问题都是这些“小恶魔”嗯,我注意到你现在有太多了“,它会很容易使用”,而不是“没有显示好的警报,我用这种方式检查它。