iOS 點擊推送訊息跳到應用指定頁面
現在的推送用的越來越頻繁,幾乎每個應用都開始用到了。其實又有幾個使用者會去看推送訊息呢?沒辦法,產品經理最大啊,只是苦了我們這一幫程式員啊!閑話少說,進入正題。兄弟我用的是極光推送,自然是以極光推送為例了。
現在點擊推送訊息,有兩種跳轉方式:1.開啟應用,跳轉到應用首頁;2.開啟應用,跳轉到指定頁面。
第一種,你什麼都不用設定,只要註冊極光應用就可以。這裡就不寫怎麼註冊極光應用了,可以參考官方文檔,寫的很詳細。
第二種,重頭戲來了。
// APP未運行時擷取通知的內容 remoteNotification就是你們伺服器發送的推送的內容
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{NSDictionary *remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];// 如果remoteNotification不為空白,代表有推送發過來,以下類似if (remoteNotification) {// 把應用右上方的表徵圖去掉 這個最好寫上,要不然強迫症會瘋的[UIApplication sharedApplication].applicationIconBadgeNumber = 0; // 發通知 [self performSelector:@selector(發送通知的方法,以下相同)withObject:remoteNotification afterDelay:1];}}// 程式運行時接收推送 userInfo就是你們伺服器發送的推送的內容- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfo {// Required[APService handleRemoteNotification:userInfo];if (userInfo) {[UIApplication sharedApplication].applicationIconBadgeNumber = 0;// 發通知, 通知內容就是userInfo 你可以列印一下}}- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfofetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler {// IOS 7 Support Required[APService handleRemoteNotification:userInfo];completionHandler(UIBackgroundFetchResultNewData);if (userInfo){// 發通知}}
以上的三個方法,可以讓你接收到伺服器發過來的推送內容,在主線程中發通知,否則接收不到。如果你想讓應用跳轉到首頁的詳情頁
- (void)viewDidLoad{// 添加觀察者 讓程式執行跳轉到詳情頁的方法}
如果你想讓應用跳轉到第三頁的詳情頁 在發送通知的方法中加上:
_tabBarViewController.selectedIndex = 2;
感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!