2012-09-19 89 views
4

請告訴我如何將某個字符串值從活動傳遞到webview。我在DashboardActivity中加載了帶有加載URL的webview,我希望將該活動的字符串值傳遞給由javaScript window.onload函數使用的webview。請給我一個這樣做的方法。如何將字符串值從活動傳遞到webView

+1

謝謝您的企業。我會。 – ssrp

回答

11

根據您的使用情況,有不同的方法來完成此操作。困難在於你想用onload方法做事。

如果有可能的字符串中通過在頁面加載後,你可以使用

String jsString = "javascript:addData('" + theString + "');"); 
webView.loadUrl(jsString); 

如果你真的需要在頁面的onload方法訪問的數據,你可以修改稱爲URL如果可能的話包括查詢數據。例如:

String urlWithData = yourUrl + "?data=" + theString; 
webView.loadUrl(urlWithData); 

然後使用標準的javascript解析window.location.search來獲取數據。

最後,如果你不能修改URL出於某種原因,你可以使用一個回調對象,讓JavaScript的獲得的價值:

private class StringGetter { 
    public String getString() { 
     return "some string"; 
    } 
} 

,然後裝入前此回調配置的網頁視圖時網址:

webView.addJavascriptInterface(new StringGetter(), "stringGetter"); 

,並在頁面的onload方法可以使用:

var theString = stringGetter.getString(); 

希望這有助於!

+0

非常感謝。它工作非常清楚。 – ssrp

+0

也請寫js代碼。 –

2

如果所加載的網頁中選擇一個輸入框,你可以試試這個:

String pasteData = "a string value to paste into the webview"  
String javaScript = "javascript:document.activeElement.setAttribute('value','"+pasteData+"');"; 

mWebView.getSettings().setJavaScriptEnabled(true); 
mWebView.requestFocus(View.FOCUS_DOWN); 
mWebView.loadUrl(javaScript); 
相關問題