チュートリアルに従ってトースト通知を表示する際に問題が発生しました
Azure モバイル サービス サーバー スクリプトは次のとおりです。
function insert(item, user, request) {
request.execute({
success: function () {
// Write to the response and then send the notification in the background
request.respond();
push.mpns.sendToast(item.channel, {
text1:"Sent from cloud!"
}, {
success: function (pushResponse) {
console.log("Sent push:", pushResponse);
}
});
}
});
そして、これは私がApp.xaml.csに入れたコーディングです:
//push notification
public static HttpNotificationChannel CurrentChannel { get; private set; }
private void AcquirePushChannel()
{
CurrentChannel = HttpNotificationChannel.Find("MyPushChannel");
if (CurrentChannel == null)
{
CurrentChannel = new HttpNotificationChannel("MyPushChannel");
CurrentChannel.Open();
//CurrentChannel.BindToShellTile();
CurrentChannel.BindToShellToast();
}
}
private void Application_Launching(object sender, LaunchingEventArgs e)
{
AcquirePushChannel();
}
しかし、トーストはまだ出ていません(フリップタイルはうまく機能しています)。
トーストを機能させるために必要な変更はありますか?
編集: チャネルを開くときのエラー:
System.InvalidOperationException was unhandled by user code
HResult=-2146233079
Message=Open failed because the channel was already open. You can find an open channel by calling the Find method.
Source=Microsoft.Phone
StackTrace:
at Microsoft.Phone.Notification.SafeNativeMethods.ThrowExceptionFromHResult(Int32 hr, Exception defaultException, NotificationType type)
at Microsoft.Phone.Notification.HttpNotificationChannel.Open()
at UtemFtmkDB.App.AcquirePushChannel()
at UtemFtmkDB.App.Application_Launching(Object sender, LaunchingEventArgs e)
at Microsoft.Phone.Shell.PhoneApplicationService.FireLaunching()
at Microsoft.Phone.TaskModel.Interop.ITask.Launching.Invoke()
at Microsoft.Phone.TaskModel.Interop.Task.FireOnLaunching()
InnerException: