2014-03-31 63 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 +「')」);