2013-05-08 70 views
1

嗨在我的android phonegap應用程序中,我需要從android代碼(DroidGap)調用javascript方法。我嘗試了示例代碼。如何從android中調用javascript方法

這裏是我的代碼:

super.loadUrl("file:///android_asset/www/index.html"); 
super.loadUrl("javascript:onload()"); 

當我使用super.loadUrl( 「JavaScript的:警報( '海')」);我得到這個alert.But當我使用方法「onload」我得到錯誤。

這是我的錯誤的logcat:

Uncaught TypeError: Property 'onload' of object [object DOMWindow] is not a function at null:1 

這裏是我的index.html中的腳本:

<script type="text/javascript"> 
function onload() 
{ 
    alert("hai"); 
} 
</script> 

我不知道在哪裏我提前很wrong.Please指南me.Thanks。

+0

可能重複的[JavaScript警報不工作在Android WebView](http://stackoverflow.com/questions/5271898/javascript-alert-not-working-in-android-webview) – Pragnani 2013-05-08 11:42:09

+0

這裏是工作的例子試試這個http ://polamreddyn.blogspot.in/2013/05/php-alert-dialog-in-webview.html – NagarjunaReddy 2013-05-08 14:03:57

回答

1

試試這一個,並添加此行也

super.setWebChromeClient(new WebChromeClient()); 
    super.loadUrl("file:///android_asset/www/index.html"); 

此行調用,比如在此之後onPageFinished

webview.setWebViewClient(new WebViewClient() {      
    @Override 
    public void onPageFinished(WebView view, String url) {  

     webview.loadUrl("javascript:(function() {alert("hai") } 
    );       
    }     
});      
+0

對不起它不活動,但droidgap ... – Sudha 2013-05-08 12:10:04

+0

在你的代碼'super'意味着... – NagarjunaReddy 2013-05-08 12:13:50

+0

我使用droidgap所以我用super.loadUrl – Sudha 2013-05-08 12:31:46

0

的Android只能調用JavaScript方法如果HTML頁面在web視圖

當前加載

第一個電話

webview.loa dUrl(「你的html頁面url」); 然後調用

webView.loadUrl( 「JavaScript的:你好()」);

0

嘗試處理報警功能的Java文件,如:

mWebView.setWebChromeClient(new MyWebChromeClient());  

    final class MyWebChromeClient extends WebChromeClient {   

     @Override  
     public boolean onJsAlert(WebView view,String url,   
           String message,JsResult result) {   

      new AlertDialog.Builder(MainActivity.this).  
       setTitle("Alert").setMessage(message).setPositiveButton("OK",  
      new DialogInterface.OnClickListener() {  
        @Override  
        public void onClick(DialogInterface arg0, int arg1) {  

        }  
      }).create().show();  
      result.confirm();   
      return super.onJsConfirm(view,url,message, result);   
     }  

    } 
0

我有同樣的問題,當我提出的目標javascript函數從主頁到一個單獨的.js文件。出於某種原因,loadUrl()函數無法找到外部加載的函數 - 僅限於主頁面中的函數。一旦我將功能移回,它立即開始工作。

去圖。