我想知道是否有任何方法可以從本機Android活動調用JavaScript函數。如何直接從Android中的活動調用JavaScript函數?
我碰到:
webView.loadUrl("javascript:hello()");
但它沒有爲我工作。
此外,Android將如何知道JavaScript函數駐留在哪個html頁面?
我想知道是否有任何方法可以從本機Android活動調用JavaScript函數。如何直接從Android中的活動調用JavaScript函數?
我碰到:
webView.loadUrl("javascript:hello()");
但它沒有爲我工作。
此外,Android將如何知道JavaScript函數駐留在哪個html頁面?
的Android只能調用JavaScript方法如果HTML頁面在web視圖當前加載
webView.loadUrl("javascript:hello()");
將調用hello方法在僅噹噹前被加載到web視圖控制含有該方法中,頁面的HTML頁面writen
第一個電話
webview.loadUrl("Your html page url");
然後調用
webView.loadUrl("javascript:hello()");
使用JavaScript之前,首先必須使用「getJavaScriptEnabled()」(它的默認FALSE)檢查Javascript是否已啓用。而loadUrl()方法僅用於僅加載當前頁面。它不會執行與JavaScript相關的任何操作。
例:
設置的WebView
//網頁流量的初始化
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
在WebView中加載HTML
webView.loadUrl("file:///android_asset/testhtml.html");
設置WebChromeClient到webView的
webView.setWebChromeClient(new MyJavaScriptChromeClient());
MyJavaScriptChromeClient類 這裏我們必須重寫onJsAlert()方法來處理JavaScript Alert函數。
private class MyJavaScriptChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message,final JsResult result) {
//handle Alert event, here we are showing AlertDialog
new AlertDialog.Builder(MainWebViewActivity.this)
.setTitle("JavaScript Alert !")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do your stuff
result.confirm();
}
}).setCancelable(false).create().show();
return true;
}
}
我的HTML文件: testhtml.html:
<html>
<body >
<div onclick="alert('hello')"> Click Me !! </div>
</body>
</html>
如何運作? 當文字「Click Me !!」在WebView上單擊,調用android函數onJsAlert(WebView視圖,String url,String消息,最終的JsResult結果)。要提醒的參數被複制到onJsAlert函數的消息參數。其餘的處理在那裏完成。 這裏我們顯示一個AlertDialog。
如果任何人有任何使用問題,像我一樣,你需要打電話給你的javascript函數的頁面加載完成,否則的JavaScript將不會被調用後:
webviewer.loadUrl("file:///android_asset/mypage.html");
webviewer.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url)
{
webviewer.loadUrl("javascript:hello()");
}
});
PLZ也投了我的回答... :) – Talha 2012-08-02 04:28:41