0

IOS アプリに大きな問題があります。Appcelerator のドキュメントで提供されているガイドに従って、iOS プッシュ通知をセットアップします。私のappceleratorダッシュボードで、デバイスセクションの下にデバイスがトークンに登録されていることがわかり、詳細のプッシュでプッシュ通知を送信すると(プッシュ通知ログで)、IDデバイス番号を完全に読み取りました成功( 1)。

しかし、私のデバイスでは通知を受け取りませんでした。アプリを開いた状態と閉じた状態で試しましたが、何も表示されませんでした。なぜこれが起こるのかわかりません。私のアンドロイドでは、すべて正常に動作します。ここに私のコード:

//PUSH NOTIFICATION
var Cloud = require("ti.cloud");
//controllo se ho un token
var deviceToken = Ti.App.Properties.getString("deviceToken");

if ( deviceToken == "" || deviceToken == null) {
    requireToken();
} else {

    if ( Ti.App.Properties.getString("subscribed") !== "true" ) {
        subscribeToChannel(deviceToken);
    }

}

//chiedo un token
function requireToken() {

    // Check if the device is running iOS 8 or later
    if (Ti.Platform.name == "iPhone OS" && parseInt(Ti.Platform.version.split(".")[0]) >= 8) {
     Ti.API.warn( "entrato nella versione" )
        // Wait for user settings to be registered before registering for push notifications
        Ti.App.iOS.addEventListener('usernotificationsettings', function registerForPush() {

            // Remove event listener once registered for push notifications
            Ti.App.iOS.removeEventListener('usernotificationsettings', registerForPush); 

            Ti.Network.registerForPushNotifications({
                success: deviceTokenSuccess,
                error: deviceTokenError,
                callback: receivePush
            });
        });

        // Register notification types to use
        Ti.App.iOS.registerUserNotificationSettings({
            types: [
                Ti.App.iOS.USER_NOTIFICATION_TYPE_ALERT,
                Ti.App.iOS.USER_NOTIFICATION_TYPE_SOUND,
                Ti.App.iOS.USER_NOTIFICATION_TYPE_BADGE
            ]
        });

    }

    // For iOS 7 and earlier
    else {

        Ti.Network.registerForPushNotifications({
            // Specifies which notifications to receive
            types: [
                Ti.Network.NOTIFICATION_TYPE_BADGE,
                Ti.Network.NOTIFICATION_TYPE_ALERT,
                Ti.Network.NOTIFICATION_TYPE_SOUND
            ],
            success: deviceTokenSuccess,
            error: deviceTokenError,
            callback: receivePush
        });

    }

    function deviceTokenSuccess(e) {
        Ti.API.warn( "token ricevuto" )
            Ti.App.Properties.setString("deviceToken", e.deviceToken);
        subscribeToChannel(e.deviceToken);
    }
    function deviceTokenError(e) {
       //error action
    }

}

//controllo se sono iscritto alle notifiche push
if ( Ti.App.Properties.getString("subscribed") !== "true" ) {
    subscribeToChannel(deviceToken);
}


function subscribeToChannel (_deviceToken) {
        Ti.API.warn( "subscribe fatta" )
    Cloud.PushNotifications.subscribeToken({
        device_token: _deviceToken,
        channel: "ios_alerts",
        type: Ti.Platform.name == 'android' ? 'android' : 'ios'
    }, function (e) {
        if (e.success) {
                Ti.App.Properties.setString("subscribed", "true");
        }
    });

};

function receivePush(e) {
    Ti.API.warn("alert ricevuto" + JSON.stringify(e) )
    alert(e)
}
4

2 に答える 2

0

これがあなたの問題である場合に備えて:

  1. デバイスがデバッグ モードの場合、デバイス トークンを取得できません。実行モードである必要があります。
  2. アドホック リリースでは、プッシュ通知はサンドボックス「gateway.sandbox.push.apple.com」を使用する必要があることに注意してください。

クリス

参照: https://archive.appcelerator.com/question/148135/no-reply-from-tinetworkregisterforpushnotifications

于 2016-04-06T12:57:41.067 に答える
0

おそらくAppleパネルの証明書に関連するものです。appid で APS が有効になっているかどうかを確認し、有効になっていない場合は有効にしてから、別のプロビジョニング プロファイルを生成し、アプリを再構築します。また、Appcelerator プラットフォームの Web サイトに .p12 ファイルを配置する必要があります。

于 2016-01-25T15:41:23.193 に答える