Netbeans Cordova PushPlugin 无法在 iOS 上运行

Posted

技术标签:

【中文标题】Netbeans Cordova PushPlugin 无法在 iOS 上运行【英文标题】:Netbeans Cordova PushPlugin not working on iOS 【发布时间】:2015-05-15 10:39:35 【问题描述】:

我正在使用 Netbeans 构建一个使用 PushPlugin (https://github.com/phonegap-build/PushPlugin) 的 Cordova 项目。

它在 android 上运行良好,但在 ios 上它不注册设备。它也没有给出任何错误。

同样奇怪的是插件文件夹 (com.phonegap.plugins.PushPlugin) 位于项目 /plugins 文件夹中,但它并没有在构建时被复制到平台/ios/[appname]/Plugins。

我的 config.xml 中有这个:

<feature name="PushPlugin">
  <param name="android-package" value="com.plugin.gcm.PushPlugin"/>
  <param name="ios-package" value="PushPlugin"/>
</feature>

我使用以下 javascript

var pushNotification;

function onDeviceReady() 
  alert('ready');
  try 
    pushNotification = window.plugins.pushNotification;
    if (typeof device == 'undefined') 
      alert('device undefined');
    
    if (device.platform == 'android' || device.platform == 'Android' || device.platform == 'amazon-fireos') 
      pushNotification.register(successHandler, errorHandler, 
        "senderID": "[senderid]",
        "ecb": "onNotification"
      );
     else 
      alert('ios!');
      pushNotification.register(tokenHandler, errorHandler, 
        "badge": "true",
        "sound": "true",
        "alert": "true",
        "ecb": "onNotificationAPN"
      );
    
   catch (err) 
    txt = "There was an error on this page.\n\n";
    txt += "Error description: " + err.message + "\n\n";
    alert(txt);
  



function onNotificationAPN(e) 
  // handles APNS notifications for iOS
  if (e.alert) 
    navigator.notification.alert(e.alert);
  
  if (e.sound) 
    var snd = new Media(e.sound);
    snd.play();
  
  if (e.badge) 
    pushNotification.setApplicationIconBadgeNumber(successHandler, e.badge);
  


function onNotification(e) 
  //handles notifications for Android (left out)


function tokenHandler(result) 
  alert('device token = ' + result);


function successHandler(result) 
  alert('success = ' + result);


function errorHandler(error) 
  alert('error = ' + error);


document.addEventListener('deviceready', onDeviceReady, false);

我确实看到了“就绪”和“ios!”警报,但在那之后,什么都没有发生。

【问题讨论】:

【参考方案1】:

问题解决了!结果我不得不复制插件文件并手动将它们添加到 xcode 项目中。

【讨论】:

以上是关于Netbeans Cordova PushPlugin 无法在 iOS 上运行的主要内容,如果未能解决你的问题,请参考以下文章

在 netbeans 中将 FacebookConnect 添加到科尔多瓦

Gradle "com.android.dex.DexException" 构建一个涉及 cordova-plugin-googlemaps 和 ibm-mfp-push 插件的应

在 Cordova 3.2.0 中未触发 deviceready 事件

netbeans11支持中文吗

NetBeans C++

卸载一个 netbeans 7.0.1 插件,netbeans 不启动