2013-01-12 58 views
0

我试着将下面的代码放到html中并运行它,然后我将它上载到我的服务器中,并在我的iPhone中的Safari浏览器中打开链接,并单击显示确认并且没有弹出窗口!有人可以请帮助。Phonegap确认提示

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Notification Example</title> 
    <script type="text/javascript" charset="utf-8" src="http://mobile-web-development-with-phonegap.eclipselabs.org.codespot.com/svn-history/r99/trunk/com.mds.apg/resources/phonegap/js/phonegap-1.0.0.js"></script> 
    <script type="text/javascript" charset="utf-8"> 
     // Wait for PhoneGap to load 
     document.addEventListener("deviceready", onDeviceReady, false); 
     // PhoneGap is ready   
     function onDeviceReady() { 
      // Empty 
     } 
     // process the confirmation dialog result 
     function onConfirm(button) { 
      alert('You selected button ' + button); 
     } 
     // Show a custom confirmation dialog 
       function showConfirm() { 
      navigator.notification.confirm(
      'You are the winner!', // message 
      onConfirm,    // callback to invoke with index of button pressed 
      'Game Over',   // title 
      'Restart,Exit'   // buttonLabels 
     ); 
     } 
    </script> 
    </head> 
    <body> 
    <p><a href="#" onclick="showConfirm(); return false;">Show Confirm</a></p> 
    </body> 
</html> 
+1

您正试图从浏览器使用Phonegap API。如果您使用Phonegap制作本机应用程序,它们才会有效。确保你了解Phonegap是什么。 – keune

回答

2

您正在使用的代码(navigator.notification.confirm)是专门针对移动平台,是指到PhoneGap的移动应用程序中运行。如果您想在浏览器中将对话/确认消息编译到应用程序之前进行测试,我会建议使用混合方法来检测应用程序的环境,并使用本机confirm(message)或PhoneGap特定的Notification API。下面是一个对象,一直在为我工作:

/** 
* The object encapsulates messaging functionality to work both in PhoneGap and 
* browser environment. 
* @author Zorayr Khalapyan 
* 
*/ 
var MessageDialogController = (function() { 

    var that = {}; 

    /** 
    * Invokes the method 'fun' if it is a valid function. In case the function 
    * method is null, or undefined then the error will be silently ignored. 
    * 
    * @param fun the name of the function to be invoked. 
    * @param args the arguments to pass to the callback function. 
    */ 
    var invoke = function(fun, args) { 
     if(fun && typeof fun === 'function') { 
      fun(args); 
     } 
    }; 

    that.showMessage = function(message, callback, title, buttonName) { 

     title = title || "DEFAULT_TITLE"; 
     buttonName = buttonName || 'OK'; 

     if(navigator.notification && navigator.notification.alert) { 

      navigator.notification.alert(
       message, // message 
       callback, // callback 
       title,  // title 
       buttonName // buttonName 
      ); 

     } else { 

      alert(message); 
      invoke(callback); 
     } 

    }; 

    that.showConfirm = function(message, callback, buttonLabels, title) { 

     //Set default values if not specified by the user. 
     buttonLabels = buttonLabels || 'OK,Cancel'; 
     var buttonList = buttonLabels.split(','); 

     title = title || "DEFAULT TITLE"; 

     //Use Cordova version of the confirm box if possible. 
     if (navigator.notification && navigator.notification.confirm) { 

       var _callback = function (index) { 
        if (callback) { 
         //The ordering of the buttons are different on iOS vs. Android. 
         if(navigator.userAgent.match(/(iPhone|iPod|iPad)/)) { 
          index = buttonList.length - index; 
         } 
         callback(index == 1); 
        } 
       }; 

       navigator.notification.confirm(
        message,  // message 
        _callback, // callback 
        title,  // title 
        buttonLabels // buttonName 
       ); 

     //Default to the usual JS confirm method. 
     } else { 
      invoke(callback, confirm(message)); 
     } 

    }; 

    return that; 

})(); 

希望这有助于!如果您有任何问题,请告诉我。

+0

我在哪里插入代码?我使用Phonegap html可以上传示例模板文件,以便我可以测试和学习。 – Ben

+0

将代码放入JavaScript文件中,并通过