2

Phonegapを使用してiPhoneとAndroid用のアプリを作成しました。

今、私はすでにかなりうまく機能しているプッシュ機能を追加したいと思いました。

iPhoneにプッシュメッセージが届くと、ホーム画面にメッセージが表示されます。スワイプすると、iOSがアプリケーションを開きます。- ここまでは順調ですね。

ここで、PhoneGapアプリ内で、 JavaScriptを介してアプリ内で正しいビューを開くために、そのメッセージが実際に何を示しているかを確認する必要があります。

私はこれについてかなりの数の投稿があることを知っていますが、これらの質問に対するいくつかの明確な答えを見つけることができませんでした:

  • PhoneGapはプッシュメッセージをサポートしていますか?
  • はいの場合、そのドキュメントはどこにありますか?
  • そうでない場合、どのプラグイン/フレームワークを推奨できますか?これまでのところ、pushwooshとUrbanairを見つけました。彼らは何か良いですか?
  • Pushwooshに関して、私はある種のPushwoosh IDが必要であることに気づきました-なぜですか?
4

2 に答える 2

3

Pushwoosh IDとは、おそらくPushwooshアプリIDまたはアプリケーションコードを意味します。これは、PushwooshコントロールパネルのアプリケーションのIDです(現在の形式はXXXXX-XXXXXです)。Pushwooshに新しいアプリを追加するとすぐに表示されます。

PhoneGapとP​​ushwooshの簡単な統合について、HollySchinskyによって作成された非常に広範なブログ投稿がありました。

http://devgirl.org/2012/12/04/easy-phonegap-push-notifications-with-pushwoosh/

プッシュ通知をアプリに統合することを目指すすべてのPhoneGap開発者にとって非常に役立つはずです。

于 2012-12-11T09:27:19.490 に答える
0

フレームワークを使用せずに本当に簡単な解決策を見つけました。

メソッドdidFinishLaunchingWithOptionsの最後(returnステートメントの直前)に次のコードを追加しただけです。

if (launchOptions != nil)
{
    NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (dictionary != nil)
    {
        NSLog(@"Launched from push notification: %@", dictionary);
        [self addMessageFromRemoteNotification:dictionary updateUI:NO];
    }
}

また、プッシュメッセージからペイロードを取得するAppDelegate.mにこの新しいメソッドを追加しました。

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
    NSLog(@"Received notification: %@", userInfo);
    [self addMessageFromRemoteNotification:userInfo updateUI:YES];
}

(上記のNSLog呼び出しは、プッシュメッセージの内容を示します)

最後のステップとして、このリスナーを追加して、ペイロードでやりたいことを実行します。

- (void)addMessageFromRemoteNotification:(NSDictionary*)userInfo updateUI:(BOOL)updateUI
{
 // do what ever you want with userInfo
}

この情報を使用して追加のJavaScript呼び出しを実行する場合は、次を使用することをお勧めします。

[self.viewController.webView stringByEvaluatingJavaScriptFromString:@"callSomeJSFunction()"];

もちろん、必要に応じて、引数を文字列としてそのJS関数に渡すこともできます。

于 2012-12-12T14:31:19.363 に答える