3

ユーザーが phonegap (ver 1.7) を使用してアプリのプッシュ通知を有効にしているかどうかを判断しようとしています。

これまでのところ、特にその問題をチェックする方法はありませんが、プッシュ通知を登録する方法があるこのプラグインしか思いつきませんでした。これはエラーを返す可能性があり、ユーザーがプッシュ通知を無効にしていることを示している可能性があります。しかし、ご覧のとおり、それは非常に曖昧です。

私の質問は、ユーザーがアプリのプッシュ通知を有効にしているかどうかを判断するためのプラグイン (またはその他の方法) はありますか?

4

1 に答える 1

4

これを使用して、任意のタイプのプッシュ通知が有効になっているかどうかを確認できます。

if([UIApplication sharedApplication].enabledRemoteNotificationTypes == UIRemoteNotificationTypeNone)

このステータスは、デバイスの準備ができた後に簡単なプラグインを呼び出すことでアクセスできます。

更新:プラグインを作成し、そのプラグイン内でステータスを確認してから javascript に戻ってください

最初にサーバーに保存する必要がある場合は、1 つのサーバー側 API といくつかのネイティブ側コードが必要です。ios にプッシュ通知を登録した後、2 つのコールバック関数があります。

  1. didFailToRegisterForRemoteNotificationsWithError
  2. didRegisterForRemoteNotificationsWithDeviceToken

    成功した場合は、デバイス ID または一意の ID を使用してサーバーにリクエストを送信し、登録済みのデバイスを保存できます。

    • (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {

      NSString *token = [[[[deviceToken 説明] stringByReplaceingOccurrencesOfString:@"< "withString:@""] stringByReplaceingOccurrencesOfString:@">" withString:@""] stringByReplaceingOccurrencesOfString: @" " withString: @""];

      [自己 postUpdateRequest:トークン]; // サーバーへのリクエスト

      }

POSTリクエストの送信に使用

 NSURL *aUrl = [NSURL URLWithString:uRI];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

    [request setHTTPMethod:@"POST"];
   NSString *postString =@"Your Data";
     [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];

   NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request
                                                               delegate:self];
  [connection start];
        if(connection) {
       // success
        } else {
       //error
        }

登録が失敗した場合 (didFailToRegisterForRemoteNotificationsWithError)、エラー データを含む要求セットをサーバーに送信できます。

デバイスの準備ができたら、phonegap 側から ajax リクエストをサーバーに送信し、デバイスが登録されているかどうかを確認します。一意の ID を取得するには、単純なプラグインを使用できます。シンプルなプラグインを作成するには、この http://docs.phonegap.com/en/edge/guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guideに従ってください

残念ながら、アプリ コードからアプリのプッシュ通知を有効または無効にすることはできません。 これをチェックして

于 2013-08-28T04:43:39.040 に答える