2015-11-16 24 views
0

我正在嘗試使用最新的pushnotification插件構建一個簡單的應用程序。我正在使用Phonegap構建。但我無法在iOS 9.1上獲得註冊ID,但它在iOS8上運行。檢查下面的代碼phonegap構建:未獲取iOS 9.1推送通知上的註冊ID

var push = PushNotification.init({ 
      "android": { 
       "senderID": "12345679" 
      },"ios": { 
       "alert": "true", "badge": "true", "sound": "true" 
      }, "windows": { } 
      }); 


     push.on('registration', function(data) { 
      alert("got registration id"); 
      console.log(JSON.stringify(data)); 
      localStorage.setItem("deviceToken", data.registrationId); 
      }); 

     push.on('notification', function(data) { 
      // data.message, 
      // data.title, 
      // data.count, 
      // data.sound, 
      // data.image, 
      // data.additionalData 
      }); 

     push.on('error', function(e) { 
      // e.message 
      alert(e.message); 
     }); 

的Config.xml

<gap:plugin name="phonegap-plugin-push" source="npm" version="1.4.2" /> 
    <preference name="phonegap-version" value="cli-5.2.0" /> 
    <preference name="android-build-tool" value="gradle"/> 
+0

我正在使用Phonegap構建。 – Vikash

+0

上次編輯覆蓋了對這個問題的很好的編輯,但我認爲這可能是您的瀏覽器緩存問題。在開始編輯之前,請務必刷新瀏覽器,然後諮詢[編輯歷史](https://stackoverflow.com/posts/33737668/revisions),以確保您的預期編輯是唯一已經記錄的編輯。謝謝! – halfer

回答

1

我發現這個問題的解決方案, 其實這不是某一件事情,但它是多個因素

對於客戶組合一邊確保使用最新版推送插件here這是1.4.2(至今)

這裏的客戶端代碼

var push = PushNotification.init({ "android": {"senderID": "12345679"}, 
    "ios": {"alert": "true", "badge": "true", "sound": "true"}, "windows": {} }); 

push.on('registration', function(data) { 
    // data.registrationId 
}); 

push.on('notification', function(data) { 
    // data.message, 
    // data.title, 
    // data.count, 
    // data.sound, 
    // data.image, 
    // data.additionalData 
}); 

push.on('error', function(e) { 
    // e.message 
}); 

對於服務器端和Xcode項目的一個樣本:

1,一定要使用的Xcode 7.1.1(最新的穩定版本到現在)

2 - 一定要創建APNS不在生產中開發證書然後下載

enter image description here

3-拖動它或與鑰匙串訪問打開它展開並導出私鑰yourAppNameKey.p12

enter image description here

4-再接下來我們需要生成證書的PEM文件,所以,通過終端寫入:

openssl x509 -in aps_production.cer -inform der -out yourAppNameCert.pem 

注:INS我們使用我們在步驟下載證書的最後一個步驟2

5現在我們將私鑰的.p12文件轉換爲.pem文件:

openssl pkcs12 -nocerts -out yourAppNameKey.pem -in yourAppNameKey.p12 

注意:您會被要求輸入您用來導出私鑰並插入口令並確認它在服務器端代碼

6使用的密碼 - 最後,我們將證書結合,鑰匙插入單個的.pem文件:

cat PushChatCert.pem PushChatKey.pem > ck.pem 

here is a sample of the server side code

希望工程與大家..謝謝

+0

我正在使用Phonegap構建。如何在phonegap構建中使用APNS cer?我正在使用普通開發證書籤署我的應用程序,而不是電話版本中的apns證書。我也更新了我的問題 – Vikash

+0

APNS證書不會干擾開發或生產證書 APNS證書將用於生成ck.pem,該證書將用於服務器端,並且您可以使用dev_cert與電話差距進行構建 我的答案中的所有步驟都遠離主要的phonegap項目,您只需要您的開發者帳戶和鑰匙串 –