未捕获的TypeError:对象#<Object>在file:///android_asset/www/index.html上没有方法'exec'

jav*_*evg 10 javascript android phonegap-plugins cordova

  • 使用PhoenGap 2.2.0
  • 执行\ bin\create C:\ Temp\Test com.test测试
  • 有以下输出

Microsoft(R)Windows脚本宿主版本5.8版权所有(C)Microsoft Corporation.版权所有.

Creating new android project...
Building jar and js files...
Copying template files...
Copying js, jar & config.xml files...
Copying cordova command tools...
Updating AndroidManifest.xml and Main Activity...
Run Code Online (Sandbox Code Playgroud)
  • 进口项目
    • 在eclipse(4.2.0)上做了
    • 文件>新建>项目> Android>现有代码中的Android项目
    • 选择文件夹C:\ Temp\Test
    • 选中"将项目复制到工作区"
  • 做出改变
    • 检查res\xml\config.xml并且该行<plugin name="Notification" value="org.apache.cordova.Notification"/>存在
    • 检查index.html是否包含cordova-2.2.0.js
    • 案例#1打开index.html并修改自

<script type="text/javascript"> app.initialize(); </script>

<script type="text/javascript">
function showAlert(msg){
navigator.notification.alert(msg);
}
document.addEventListener("deviceready", showAlert('You are the winner!'), false);
app.initialize();
</script>
Run Code Online (Sandbox Code Playgroud)

我得到以下错误 11-25 10:29:58.399: E/Web Console(14604): Uncaught TypeError: Cannot call method 'alert' of undefined at file:///android_asset/www/index.html:40

    • 案例#2打开index.html并修改自

<script type="text/javascript"> app.initialize(); </script>

<script type="text/javascript">
function successAlert(){}
function errorAlert(){}
function showAlert(msg){
cordova.exec(successAlert, errorAlert, "Notification","alert", [msg]);
}
document.addEventListener("deviceready", showAlert('You are the winner!'), false);
app.initialize();
</script>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误 11-25 10:25:06.575: E/Web Console(14149): Uncaught TypeError: Object #<Object> has no method 'exec' at file:///android_asset/www/index.html:42 }

我确信我错过了一些东西......只是因为我无法得出结论.请帮帮我.

And*_*Dog 11

这将showAlert立即调用,而不是在事件触发时延迟:

document.addEventListener("deviceready", showAlert('You are the winner!'), false)
Run Code Online (Sandbox Code Playgroud)

而是这样做

document.addEventListener("deviceready", function() {
    showAlert('You are the winner!')
}, false)
Run Code Online (Sandbox Code Playgroud)