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),所以推送必須是真機測試

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM