2016-09-19 120 views
1

沒有收到狀況:離子推送通知:在IOS

我在我的應用程序使用Ionic Push Notifications

隨着android一切正常。但是對於IOS我沒有收到任何通知。

代碼應該沒問題。 IOS設備中的註冊令牌也可以正常工作。我可以在數據庫中看到令牌。

此外,cURL請求代碼應該很好,因爲它爲android工作。

我將粘貼下面所有的信息,可能是有用的:

的代碼:

初始化:

$ionicCloudProvider.init({ 

    "core": 
    { 
     "app_id": "MY_APP_ID" 
    }, 
    "push": 
    { 
     "sender_id": "MY_SENDER_ID", 
     "pluginConfig": { 
      "ios": { 
       "badge": true, 
       "sound": true 
      } 
     } 
    } 
}); 

IO-config.json:

{"app_id":"MY_APP_ID","api_key":"MY_API_KEY","dev_push":false,"gcm_key":"MY_GCM_KEY"} 

證書:

在ionic.io我已經安裝了證書 - 生產模式 - 和激活所有的憑據: ionic.io certificate

裏面的蘋果開發者控制檯,正確啓用了推送通知服務(用於生產)

enter image description here

測試:

該應用已發佈在App Store中。

無論如何,我通過XCODE(連接設備)在本地進行測試,並直接從應用商店下載應用程序。

我從未收到任何通知。

使用郵差是這種結果製作了一個試驗:

{ 
    "data": { 
    "status": "open", 
    "uuid": "b55a9024-d0d9-480e-a813-02053bcf2f2a", 
    "created": "2016-09-19T14:05:01.097422+00:00", 
    "state": "enqueued", 
    "app_id": "MY_APP_ID", 
    "config": { 
     "tokens": [ 
     "THE_RECEIVER_TOKEN" 
     ], 
     "notification": { 
     "message": "Push test" 
     }, 
     "profile": "MY_IONIC_IO_PROFILE" 
    } 
    }, 
    "meta": { 
    "status": 201, 
    "request_id": "dbb57cba-3817-42ee-baaf-7175b5f6c755", 
    "version": "2.0.0-beta.0" 
    } 
} 

問題:

爲什麼我沒有收到關於IOS任何通知?

我錯過了什麼?

謝謝!

回答

3
  • 確保通知在iOS設置應用程序啓用
  • 嘗試在推動有效載荷使用content_available =真
  • 嘗試在推動有效載荷使用優先級爲「高」
  • 確保你不發送使用在生產應用程序版本,或者反之亦然發展證書
  • 確保您的令牌是有效的,並刷新

Docs about priority and content_available attributes

從文檔:

在iOS上,設置當應用服務器需要發送一個發送到Sync消息content_available。不活動的客戶端應用程序將在後臺執行您的邏輯,而前臺的應用程序會將消息傳遞給didReceiveRemoteNotification :.

+0

感謝您的答覆。你能給我一個關於content_available和優先級的文檔鏈接嗎?我正在使用這個文檔:https://docs.ionic.io/services/push/,並沒有找到如何做到這一點。謝謝! – johnnyfittizio

+0

查看已更新回答 – lubilis

+0

謝謝。我發現了ion.io發送推送通知測試的設備選項中的優先級和content_available。我收到了android的nofitication,但不支持IOS。無論如何和你的其他方面,我會進一步研究。 – johnnyfittizio

0
  1. 請確保您有最新版本的離子I,E V2及以上。
  2. 在路徑的src /應用/ app.components.ts
  3. platform.ready(後)。然後加入(()=> {添加以下代碼

    變種推= Push.init({ 機器人:{ senderID: 「XXXXXXXXX」 }, IOS:{ 警告: 「真」, 徽章:真, 聲音: '假' }, 窗口:{} }); push.on( 'registration',(data)=> {console.log(data.registrationId); alert(data.registrationId.toString()); }); (通知',(數據)=> { console.log(data); });

  4. 構建(離子版本ios)後,打開Xcode中的離子項目,並在一般和團隊部分選擇已支付蘋果開發者賬戶的賬戶。

  5. 然後在功能中啓用推送通知。

  6. 如果所有其他約束如證書和.p12文件是按照蘋果公會行完成的,那麼推送肯定會奏效。

  7. 欲瞭解更多信息請訪問此鏈接:http://ionicframework.com/docs/v2/native/push/