嗨在我的android phonegap应用程序中,我需要从android代码(DroidGap)调用javascript方法。我已经尝试了示例代码。
这是我的代码:
super.loadUrl("file:///android_asset/www/index.html");
super.loadUrl("javascript:onload()");
当我使用super.loadUrl(“javascript:alert('hai')”);我正在收到此提醒。但是当我使用“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>
我不知道我错在哪里。请指导我。谢谢你。
答案 0 :(得分: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") }
);
}
});
答案 1 :(得分:0)
如果当前在webView中加载了html页面,Android只能调用javascript方法
先打电话
webview.loadUrl(“你的html页面网址”); 然后打电话
webView.loadUrl( “JavaScript的:你好()”);
答案 2 :(得分:0)
尝试处理java文件中的alert函数,如下所示:
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);
}
}
答案 3 :(得分:0)
当我将目标javascript函数从主页面移动到单独的.js文件时,我遇到了同样的问题。由于某种原因,loadUrl()函数无法找到外部加载的函数 - 只能找到主页面中的函数。一旦我将功能移回,它立即开始工作。
去图。