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

12,838

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)
Share:
12,838
javadevg
Author by

javadevg

Updated on June 06, 2022

Comments

  • javadevg
    javadevg almost 2 years
    • 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.