2

PushPluginでプッシュ通知を実装した Phonegap アプリがあります。ユーザーが受信した通知をタップすると、プッシュ通知のペイロードに基づいて特定のページへのリンク (ボタン) を含むローカル通知が表示されます。このために、もちろん通知コールバック メソッドを使用しています。

Android と iOS では、すべて正常に動作しています。プッシュ通知の受信時に WP アプリが開いている場合にも機能します。私が問題を抱えているのは、通知コールバック メソッドが起動されないため、アプリが実行されておらず、トーストがタップされたときです。これは、WP の通常の動作であることを知っているため、予期しないことではありません。

私が代わりにやろうとしているlaunch pageのは、メッセージのペイロードに を設定することです。私は Telerik バックエンド サービスを使用しているため、ドキュメントに指定されているとおりにメッセージを送信しています。

"WindowsPhone": {
    "Toast": {
        "Title": title,
        "Message": message,
        "LandingUri": uri
    }
}

コールバックで受信した通知を調べると、次のようになります。

{ 
    "jsonContent": {
        "wp:Text1": title,
        "wp:Text2": message,
        "wp:Param": uri
        },
    "type": "toast"
}

LandingUriたとえば、さまざまな方法でを設定しようとしましたが、バックボーン マリオネット ルーターを使用
//www/index.html#api/my-pagex-wmapp0:www/index.html#api/my-page
ているため、URL は #api/ のように設定されています。問題は、設定しようとしているページに表示されないことです。ほとんどの場合、インデックス ページに表示され、アプリが起動する前にクラッシュすることもあります。エラーは受信されず、シャットダウンするだけです。

私は Windows Phone に関しては完全に初心者なので、質問は次のとおりです。オブジェクトのランディング ページの uri をどのように設定すればよいですか?

または、プッシュ通知で受信した uri に基づいてアプリケーション内の特定のページに移動する (トーストがタップされ、アプリケーションが実行されていない) という動作を実現する他の方法はありますか?

追加情報については、Phonegap Build を使用しています。また、必要に応じてさらに情報を提供させていただきます。

私はこれに何時間も費やしましたが、非常にイライラしています。誰かが私を助けてくれれば、とても感謝しています。

4

1 に答える 1

1

PhoneGap Build プロジェクトでは、MainPage.xaml.cs ファイルの OnNavigatedTo メソッドにロジックを追加できます。メソッドが利用できない場合でも、オーバーライドできます。

MainPage.xaml.cs で引用したリンクにロジックを追加するだけです。例えば:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) {
  base.OnNavigatedTo(e);
  try {
    var location = this.NavigationContext.QueryString["NavigateTo"];
    if (location!= null) {
      this.CordovaView.StartPageUri = new Uri ("//www/" + location, UriKind.Relative);
    }
  } catch (KeyNotFoundException) {}
}

次に、プッシュ通知を送信した後、次の値を「LandingUri」フィールドに追加します。

"/MainPage.xaml?NavigateTo=appnews.html" ここで、appnews.html は、アプリの www フォルダーにある HTML ファイルです。これが役立つことを願っています。

于 2015-01-28T14:13:12.043 に答える