简体   繁体   中英

Uncaught TypeError: Object #<Object> has no method 'exec' at file:///android_asset/www/index.html

  • using PhoenGap 2.2.0
  • Executed \\bin\\create C:\\Temp\\Test com.test Test
  • Had following output

Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved.

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...
  • Imported Project
    • On eclipse (4.2.0) did
    • File > New > Project > Android > Android Project from Existing Code
    • Selected the folder C:\\Temp\\Test
    • Checked "Copy project into workspace"
  • Making changes
    • Checked res\\xml\\config.xml and the line <plugin name="Notification" value="org.apache.cordova.Notification"/> is present
    • Checked that index.html has the cordova-2.2.0.js included
    • Case#1 Opened index.html and modified from

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

to

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

I get following error 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

    • Case#2 Opened index.html and modified from

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

to

<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>

I get following error 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 }

I'm sure that I missed something...just that I'm not able to conclude what is it. Please help me out.

This will call showAlert immediately, instead of delaying to when the event fires:

document.addEventListener("deviceready", showAlert('You are the winner!'), false)

Instead do this

document.addEventListener("deviceready", function() {
    showAlert('You are the winner!')
}, false)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM