2 回答

TA貢獻1794條經驗 獲得超7個贊
在不改變已發布App的情況下,沒辦法。這個實現原理是,一個Push Notification出來,App接收到以后,可以解析Notification的信息,一般這個信息包括:聲音,badge,和userinfo。
每次App接收到一個Notification都會進入AppDelegate 里的這個方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {}
在這里,拿到userInfo的字典就是apns的服務端傳過來的。通過判斷userInfo的數據和當時應用所處的狀態(正在瀏覽某個頁面、是否處在運行狀態,等等),決定如何對改Notification做出反應。
一般來說,如果應用正在運行狀態,一個Notification進來了,就不做任何處理(應用Become active的時候需要你記錄一個狀態,Enter background和Terminate的時候也要記錄,還有異常退出等情況要考慮);如果應用處在后臺或關閉狀態,則可以選擇跳轉到某個頁面,或其他App(如AppStore)。
題外話:為了方便跳轉操作,一般我建議應用中的每一個界面都對應一個URL,并且允許傳遞參數(形似TT的那個URL管理),自己做,可以非常簡潔。這樣有幾個好處:
可以最大限度的增加WebView的作用,WebView可以和NativeView結合在一起用了;
應用外部進來(其他應用跳進來,Notification進來,等)可以方便的傳遞一個參數,就定位到某個界面;
內部跳轉也可以通過簡單的參數傳遞,代碼更清楚。
- 2 回答
- 0 關注
- 190 瀏覽
添加回答
舉報