Xamarin.Forms之集成推送

Android:

----------------------------------------------------------------------------------------------------------------------------

第一步:

Forms只是一个UI逻辑库,推送的东西还是必须在各自的平台单独实现

点击推送的消息,默认是直接打开当前应该的顶部的Activity,在Forms中就是MainActivity,默认的默认就是New,这样显然是不合适的,这样做的话,当点击消息的时候,会在Activity栈中重新添加一个新的MainActivity

所以我们需要设置MainActivity的LaunchMode为SingleTop,当点击消息后直接进入现有的MainActivity,而不是创建新的MainActivity

 

第二步:如何知道接收到了消息

在OnResume里面写接收到消息的处理流程肯定是不合适的

在'第一步'的设置后,如果点击进入同一个Activity,此时不会触发OnCreate方法(当然OnResume肯定是会触发的,但不能作为接收到消息的唯一判别条件,从其他应用返回到当前应用也是会触发该方法的)

OnNewIntent,当再次进入同一个Activity的时候,会触发该方法,并且大部分情况,我们为了业务方便,会使用自定义的Receiver,此时我们可以直接在Intent中传入需要传递的消息对象,然后在这里获取接收

 

iOS:

----------------------------------------------------------------------------------------------------------------------------

1.iOS接受到APN是通过

AppDelegate中的DidReceiveRemoteNotification获取的

 

        public override void DidReceiveRemoteNotification (UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)

 

通过下面的代码可以取出具体的Alert:

var alert=userInfo["aps"].ValueForKey(new NSString("alert"))?.ToString();

注意:

1.该方法只有在App在前台的时候会触发,此时不会在通知栏提示消息;如果在后台的时候,会在通知栏提示消息,只有点击消息后才会触发改方法

2.APNS在模拟器中是无法测试的(JPush会打出改LOG),所以推送必须是真机测试

 

转载于:https://www.cnblogs.com/yz1311/p/5534123.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值