PhoneGap navigator.notification.alert 在 iOS 上不起作用

Posted

技术标签:

【中文标题】PhoneGap navigator.notification.alert 在 iOS 上不起作用【英文标题】:PhoneGap navigator.notification.alert does not work on iOS 【发布时间】:2016-02-23 13:37:37 【问题描述】:

我是 PhoneGap 的新手,我的 navigator.notification.alert 不起作用。 我正在使用 PhoneGap 的示例项目,只是在 config.xml 和 index.html 中修改了几行

问题是如果我使用 PhoneGap Developer 会显示警报,但如果我将 zip 上传到 build.phonegap.com 并安装应用程序 -> 不会显示警报

config.xml:

<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id="com.phonegap.helloworld" version="1.0.0">
  <name>HW</name>
  <description>Hello World sample application that responds to the deviceready event.</description>
  <author href="http://phonegap.com" email="support@phonegap.com">PhoneGap Team</author>
  <content src="index.html"/>
  <preference name="permissions" value="none"/>
  <preference name="orientation" value="default"/>
  <preference name="target-device" value="universal"/>
  <preference name="fullscreen" value="true"/>
  <preference name="webviewbounce" value="true"/>
  <preference name="prerendered-icon" value="true"/>
  <preference name="stay-in-webview" value="false"/>
  <preference name="ios-statusbarstyle" value="black-opaque"/>
  <preference name="detect-data-types" value="true"/>
  <preference name="exit-on-suspend" value="false"/>
  <preference name="show-splash-screen-spinner" value="true"/>
  <preference name="auto-hide-splash-screen" value="true"/>
  <preference name="disable-cursor" value="false"/>
  <preference name="android-minSdkVersion" value="14"/>
  <preference name="android-installLocation" value="auto"/>
  <gap:plugin name="org.apache.cordova.battery-status"/>
  <gap:plugin name="org.apache.cordova.camera"/>
  <gap:plugin name="org.apache.cordova.media-capture"/>
  <gap:plugin name="org.apache.cordova.console"/>
  <gap:plugin name="org.apache.cordova.contacts"/>
  <gap:plugin name="org.apache.cordova.device"/>
  <gap:plugin name="org.apache.cordova.device-motion"/>
  <gap:plugin name="org.apache.cordova.device-orientation"/>
  <gap:plugin name="org.apache.cordova.file"/>
  <gap:plugin name="org.apache.cordova.file-transfer"/>
  <gap:plugin name="org.apache.cordova.geolocation"/>
  <gap:plugin name="org.apache.cordova.globalization"/>
  <gap:plugin name="org.apache.cordova.inappbrowser"/>
  <gap:plugin name="org.apache.cordova.media"/>
  <gap:plugin name="org.apache.cordova.network-information"/>
  <gap:plugin name="org.apache.cordova.splashscreen"/>
  <gap:plugin name="org.apache.cordova.vibration"/>
  <icon src="icon.png"/>
  <icon src="www/res/icon/android/icon-36-ldpi.png" gap:platform="android" gap:qualifier="ldpi"/>
  <icon src="www/res/icon/android/icon-48-mdpi.png" gap:platform="android" gap:qualifier="mdpi"/>
  <icon src="www/res/icon/android/icon-72-hdpi.png" gap:platform="android" gap:qualifier="hdpi"/>
  <icon src="www/res/icon/android/icon-96-xhdpi.png" gap:platform="android" gap:qualifier="xhdpi"/>
  <icon src="www/res/icon/blackberry/icon-80.png" gap:platform="blackberry"/>
  <icon src="www/res/icon/blackberry/icon-80.png" gap:platform="blackberry" gap:state="hover"/>
  <icon src="www/res/icon/ios/icon-57.png" gap:platform="ios"  />
  <icon src="www/res/icon/ios/icon-72.png" gap:platform="ios"  />
  <icon src="www/res/icon/ios/icon-57-2x.png" gap:platform="ios"  />
  <icon src="www/res/icon/ios/icon-72-2x.png" gap:platform="ios"  />
  <icon src="www/res/icon/webos/icon-64.png" gap:platform="webos"/>
  <icon src="www/res/icon/windows-phone/icon-48.png" gap:platform="winphone"/>
  <icon src="www/res/icon/windows-phone/icon-173-tile.png" gap:platform="winphone" gap:role="background"/>
  <gap:splash src="www/res/screen/android/screen-ldpi-portrait.png" gap:platform="android" gap:qualifier="port-ldpi"/>
  <gap:splash src="www/res/screen/android/screen-mdpi-portrait.png" gap:platform="android" gap:qualifier="port-mdpi"/>
  <gap:splash src="www/res/screen/android/screen-hdpi-portrait.png" gap:platform="android" gap:qualifier="port-hdpi"/>
  <gap:splash src="www/res/screen/android/screen-xhdpi-portrait.png" gap:platform="android" gap:qualifier="port-xhdpi"/>
  <gap:splash src="www/res/screen/blackberry/screen-225.png" gap:platform="blackberry"/>
  <gap:splash src="www/res/screen/ios/screen-iphone-portrait.png" gap:platform="ios"  />
  <gap:splash src="www/res/screen/ios/screen-iphone-portrait-2x.png" gap:platform="ios"  />
  <gap:splash src="www/res/screen/ios/screen-iphone-portrait-568h-2x.png" gap:platform="ios"  />
  <gap:splash src="www/res/screen/ios/screen-ipad-portrait.png" gap:platform="ios"  />
  <gap:splash src="www/res/screen/ios/screen-ipad-landscape.png" gap:platform="ios"  />
  <gap:splash src="www/res/screen/windows-phone/screen-portrait.jpg" gap:platform="winphone"/>
  <access origin="*"/>
  <plugin name="cordova-plugin-whitelist" version="1"/>
  <plugin name="cordova-plugin-dialogs" version="1"/>
  <feature name="Notification">
    <param name="ios-package" value="CDVNotification" />
  </feature>
  <allow-intent href="http://*/*"/>
  <allow-intent href="https://*/*"/>
  <allow-intent href="tel:*"/>
  <allow-intent href="sms:*"/>
  <allow-intent href="mailto:*"/>
  <allow-intent href="geo:*"/>
  <platform name="android">
    <allow-intent href="market:*"/>
  </platform>
  <platform name="ios">
    <allow-intent href="itms:*"/>
    <allow-intent href="itms-apps:*"/>
  </platform>
</widget>

和 index.html

<html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="msapplication-tap-highlight" content="no" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <title>Hello World</title>
    </head>
    <body onload='navigator.notification.alert("Fine!", null, "blablabla", "OK");'>
        <div class="app">
            <h1>PhoneGap</h1>
            <div id="deviceready" class="blink">
                <p class="event listening">Connecting to Device</p>
                <p class="event received">Device is Ready</p>
            </div>
        </div>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script type="text/javascript">
            app.initialize();
        </script>
    </body>
</html>

怎么了?谢谢

【问题讨论】:

您还有问题吗? 是的。我仍然无法发出警报 好的,给我一些时间阅读你的帖子。 【参考方案1】:

@Alexey 这是文档的常见问题。我已经问过Phonegap to fix it,但没有。

答案是您不能使用 Phonegap Build 代替 Phonegap 桌面/开发者应用程序。他们注定要一起工作。

你可以使用任何一个

Phoengap CLI Phonegap 构建

Phonegap Build 需要两 (2) 个文件 - index.htmlconfig.xml,仅此而已。它Phonegap Developer App一起工作。

Phonegap CLIPhonegap 桌面应用程序 的一部分。您可以使用 Phonegap CLI,但永远不要再使用 Phonegap Developer App

要明确:

Phonegap BuildPhonegap CLI 用于制作独立应用。 Phonegap 桌面应用Phonegap Developer App一起工作。

当你完成 Phonegap 桌面应用程序 - 你就完成了。不要再次使用它。移至 Phonegap BuildPhonegap CLI。我相信这很清楚。

【讨论】:

这并没有说明我的情况...应该如何创建 Phonegap Build 的应用程序?使用 CLI?我的应用程序最初是使用 CLI 创建的。我正在使用 Phonegap Developer App 在手机上查看它 这不是你的问题。您的问题是:出了什么问题?我已经回答了这个问题。 - 需要明确的是,您的新问题有答案,但您正在问一个新问题。您现在可以 - 在 *** 上提出新问题或在另一个论坛上提出问题。我建议Google Group of Cordova/Phonegap。请链接到新问题,以便我回复。 问题主题是“PhoneGap navigator.notification.alert 在 iOS 上不起作用” 没有。在英语中,这是一个陈述,而不是一个问题。决定你想做什么。不要争论。 一开始可能只是缺少“为什么”。 Alexey 现在一切都清楚了吗?

以上是关于PhoneGap navigator.notification.alert 在 iOS 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)

Phonegap : 浮动气泡通知,如 Phonegap 中的 facebook messenger

phonegap build + phonegap-cli + ionic 图标

PhoneGap - Android - 在 phonegap 中滑动导航

PhoneGap / Cordova 回调错误 - 在 PhoneGap 中未执行 RestKit 完成功能

Cordova/Phonegap:无法让 Facebook Phonegap 插件工作