2013-05-08 100 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()函数无法找到外部加载的函数 - 仅限于主页面中的函数。一旦我将功能移回,它立即开始工作。

去图。