Tom*_*zyk 1 c# xamarin azure-notificationhub xamarin.forms
在我成功登录后的应用程序中,我想使用标签注册到 NotificationHub,其中 Tag 是电子邮件地址。
以下场景在 iOS 上运行良好:
MessagingCenter.Subscribe<LoginViewModel, string>(this, MessagesId.RegisterForPush, (s, arg) =>
{
NSSet tags = new NSSet(arg); // create tags if you want
Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) =>
{
if (errorCallback != null)
Console.WriteLine("RegisterNativeAsync error: " + errorCallback.ToString());
});
});
Run Code Online (Sandbox Code Playgroud)
但相当于 Android 抛出一个NetworkOnMainThreadException:
MessagingCenter.Subscribe<LoginViewModel, string>(this, MessagesId.RegisterForPush, (s, arg) =>
{
var tags = new List<string>() { arg };
try
{
var hubRegistration = Hub.Register(registrationId, tags.ToArray());
}
catch (Exception ex)
{
Log.Error(PushHandlerBroadcastReceiver.TAG, ex.Message);
}
});
Run Code Online (Sandbox Code Playgroud)
你知道如何解决这个问题吗?
使用 a从主 UI 线程Task.Run获取注册过程。
await Task.Run(() =>
{
// your register code here...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3254 次 |
| 最近记录: |