5

git ハブ (https://github.com/urbanairship/phonegap-ua-push) の最新の例から、Phonegap/Cordova の最新 v2.3.0 の新しいビルドを使用すると、iOS でデバイスを登録する際に問題が発生します。 UA。最新に更新するまで問題はありませんでした。次のようにデバイスを登録しています。

function on_reg(error, pushID) {
    console.log("UA Registration complete.")
}

push = window.pushNotification
push.registerEvent('registration', on_reg)

しかし、そのコードを呼び出すたびに、「デバイス トークンは nil です。登録は後で試行されます」というエラーが表示されます。それが決して起こらないことを除いて。

ログは次のとおりです。

2013-01-09 17:38:29.378 Grouped[271:907] [D] -[UAPush updateRegistration] [589 行] 登録状態の確認

2013-01-09 17:38:29.380 Grouped[271:907] [D] -[UAPush updateRegistration] [609 行目] デバイス トークンがありません。登録は後で試行されます

2013-01-09 17:38:29.744 Grouped[271:907] [D] +[UAKeychainUtils getDeviceID] [275 行] キーチェーンからデバイス ID 情報を取得しました。

2013-01-09 17:38:29.745 Grouped[271:907] [D] +[UAKeychainUtils getDeviceID] [279 行目] デバイス ID の結果が nil ではありません。

2013-01-09 17:38:29.746 Grouped[271:907] [D] +[UAKeychainUtils getDeviceID] [Line 288] 読み込まれたデバイス ID: C1E75722-ED34-4513-BBA5-CB9EDEBBD117

2013-01-09 17:38:29.747 Grouped[271:907] [D] +[UAKeychainUtils getDeviceID] [289行] 読み込み機種名: iPhone4,1

2013-01-09 17:38:32.724 Grouped[271:907] [D] -[UAAnalytics requestDidSucceed:response:responseData:] [461 行目] Analytics データが正常に送信されました。ステータス: 200

私たちは何を間違っていますか?

4

1 に答える 1

8

このバグを追跡して、PhoneGap の最新バージョンで行われた変更までたどり着きました。

iOS の場合、device.platform は「iPhone」、「iPad」、または「iPod Touch」を返していましたが、(正しく)「iOS」を返すようになりました。

これは PushNotification.js モジュールと競合し、誤った情報を返しました。

// Registration

PushNotification.prototype.registerForNotificationTypes = function (types, callback) {
if(device.platform == "iPhone" || device.platform == "iPad" || device.platform == "iPod touch") {
this.call_native(callback, "registerForNotificationTypes", [types])
}
}

これをdevice.platform == "iOS"に変更すると問題が解決します。

アーバン飛行船、 https://github.com/urbanairship/phonegap-ua-push/blob/master/ios-sample/www/lib/PushNotification.jsで git を更新したい場合は、多くの人が感謝すると確信しています。それ!

于 2013-01-10T03:06:59.990 に答える