2014-03-31 58 views
0

我传递一个值从原生的Android活动JS功能,但功能没有被称为从Android的活动

Java方法

public void Jmethod() 
{ 
//index is the WebView 
index.loadUrl("javascript: window.SetImage("+selectedImagePath+");"); 
} 

JS返回一个字符串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 

我正在调用成功从web视图的Java功能,但是这件事情不能正常工作,请你告诉我在哪里,我错了..

回答

0

你有enabledJavascript?

myWebView.getSettings().setJavaScriptEnabled(true); 

您可能还想删除javascript和window.SetImage之间的空间。

+0

yes其启用。 。 。 –

+0

请检查javascript和window.SetImage之间的空间。 – katch

+0

也清空了空间,但还是一样 –

0

当你说javascript函数没有被调用时,你的意思是说,还是你的意思是警告对话框不显示?

如果是后者,您需要在WebView上设置默认的WebChromeClient来显示UI。

myWebView.setWebChromeClient(new WebChromeClient()); 
+0

没有显示好警报,我正在用这种方式检查它。 –

0

我已经在当地进行过测试,它对我有用。我希望你能得到从:)

// Java的

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); 
} 

0

问题是唯一这些''... 它工作正常加入

index.loadUrl(“javascript:SetImage('”+ selectedImagePath +“')”);