iOSで動作するプッシュ通知を受け取ることができないXamarinフォームアプリがあります。彼らはAndroidでうまくいっています。デバイスは、SDK v4.1.0を使用してUrban Airshipに正しく登録されています。私はChannelIdとデバイストークンを取得できます。私がDevチャンネルでプッシュアウトを送信すると、Androidデバイスは通知を受け取りますが、iOSデバイスは通知を受け取りません。 Urban Airshipでは、メッセージ全体がAndroid搭載端末と、これをテストした両方のiOS端末にメッセージが配信されたことが示されています。私は何か小さいものを欠いていると確信していますが、それが何であるか把握できません。以下はApp Delegateのソースです。私が見てきた例からかなりまっすぐです。XamarinフォームiOSデバイスはUrban Airshipからプッシュを受け取りません
using System;
using System.Collections.Generic;
using System.Linq;
using Foundation;
using UIKit;
using UrbanAirship;
namespace -----------.Mobile.iOS
{
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
UAConfig config = new UrbanAirship.UAConfig();
config.DevelopmentAppKey = "----------------------";
config.DevelopmentAppSecret = "----------------------";
config.ProductionAppKey = "----------------------";
config.ProductionAppSecret = "----------------------";
#if DEBUG
config.InProduction = false;
#else
config.InProduction = true
#endif
UAirship.TakeOff(config);
UAirship.Push.UserPushNotificationsEnabled = true;
UAirship.Push.ChannelTagRegistrationEnabled = true;
// Write the ChannelId for reference later.
Guid urbanAirshipChannelId;
UrbanAirshipData uaData = new UrbanAirshipData();
if (Guid.TryParse(UAirship.Push.ChannelID, out urbanAirshipChannelId))
{
uaData.UrbanAirshipChannelId = urbanAirshipChannelId;
uaData.UrbanAirshipDeviceType = Common.Utilities.Enumerations.eUrbanAirshipDeviceType.iOS;
}
UAirship.Push.PushNotificationDelegate = PushReceived();
LoadApplication(new App(uaData));
return base.FinishedLaunching(app, options);
}
private UAPushNotificationDelegate PushReceived()
{
UAPushNotificationDelegate result = new UAPushNotificationDelegate();
return result;
}
}
}
ご意見やご提案をいただければ幸いです。しかしhttps://github.com/urbanairship/xamarin-component/issues/40
デバイスがプッシュを受けていないために発生しませんこと -
ありがとうございました。質問があります。 iOSの予想される動作は次のとおりですか?アプリがフォアグラウンドを実行していてプッシュが受信されると、そのデバイスはユーザーに通知しませんが、通知は他の通知とともにリストされますか?また、これはUAPushインスタンスで変更できることに言及しました。 プッシュしようとしたときに通知リストを見ていて、何も見なかった。私は問題を投稿しなければならないかもしれないと思う。私はUAに連絡しましたが、お客様のサービスレベルにはサポートがありません。 – GX2TAP
Appleはアプリがプッシュを処理し、iOS 10までの通知を一切送信しないと想定していました。今では、フォアグラウンドプレゼンテーションオプションを設定することができます。ここでデフォルト値を設定できます - http://docs.urbanairship.com/reference/libraries/ios/latest/Classes/UAPush.html#/c:objc(cs)UAPush(py)defaultPresentationOptions彼らはおそらくコミュニティフォーラムに投稿してもらえますが、かなり迅速に対応することができます。 – ralepinski
ありがとうございます。私はそれを次のステップにします。フィードバックをお寄せいただきありがとうございます。 – GX2TAP