2016-12-21 6 views
1

はい、類似の質問も積み重ねられていますが、これまでのところ、これらの質問から適切な同時回答は見つかりませんでした。アプリケーションがInActiveモードのときにサイレントプッシュ通知を処理する方法は? In Objective C

どのようにデータをダウンロードしたり、Web-APIを呼び出すことができますか?サイレントプッシュ通知を受け取ったらどうすればよいですか?

マイコードは...以下の通りです

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler 
{ 

    NSDictionary *dicAPS = [userInfo objectForKey:@"aps"]; 

    if(application.applicationState == UIApplicationStateBackground) { 

     // This is working.. 
     [self callWebService]; 
    } 
    else if(application.applicationState == UIApplicationStateInactive) 
    { 
     // This is not working.. 
     [self callWebService]; 
    } 
    else 
    { 
     // This is working.. 
     //Show an in-app banner 
    } 
} 

注:ウェブ側から
1)は、私はすでに追加「コンテンツ利用できる」1
2)私はすでにPLISTにキーの下に追加など。

<key>UIBackgroundModes</key> 
<array> 
    <string>remote-notification</string> 
</array> 

うまくいけば、私はあなたの答えから新しい希望を得るでしょう。

よろしくお願いいたします。

+0

サウンド値を設定してペイロードで管理することもできますか? –

+0

@ Shubham-Systematix問題は、アプリケーションが非アクティブなときにWeb APIを呼び出したり、コードを実行する方法です。 – Sonu

+0

これはバックグラウンドモードを設定する必要がありますが、10分でも動作します。スロットまた、私の下の答えを確認してください –

答えて

1

間違った方法で処理しています。

「didReceiveRemoteNotification」は、あなたのアプリが非アクティブ状態にある場合はコールされません。

この状態を処理するには、「AppDelegate」の「didFinishLaunchingWithOptions」メソッドで次のコードを使用します。

//Handling PUSH NOtIFICATIONs when app is killed 

NSDictionary *pushDic = [[NSDictionary alloc]init]; 
pushDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"]; 

if (pushDic) 
{ 
    [self callWebService]; 
} 
+0

プッシュ通知を受け取ったとき、またはユーザーがアプリを開くときに同時にコードを実行していますか? – Sonu

+0

ユーザーがバナーをタップすると実行されます。 –

+0

私は試しました、それは動作していません。 – Sonu

0

あなたのアプリが非アクティブモードであれば、リモート通知やローカル通知を処理することはできません。他の人が電話、メッセージ、その他のような画像になると、アプリケーションはINACTIVEに移動します。

何か必要なことをやりたい場合は、ウェブサービスの助けを借りてapplicationDidBecomeActiveで処理できます。

+0

Whatsppと同様のメカニズムで動作する多くのアプリケーション(サイレントプッシュ通知)。 AppleはInactiveモードのサポートを提供していません。なぜUIApplicationStateInactiveの列挙型ですか? – Sonu

関連する問題