<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                假設讀者已經知道push的基本知識,本文只是解決一些適配,兼容問題。如果對push 不甚了解,參考下面的文章 1.【iOS push全方位解析】(一)?[push的概述](http://blog.csdn.net/hherima/article/details/45583787) 2.【iOS push全方位解析】(二)?[生成push證書,生成Provisioning Profile](http://blog.csdn.net/hherima/article/details/45583865) 3.【iOS push全方位解析】(三)[一個極簡的demo,并測試一下push](http://blog.csdn.net/hherima/article/details/45624075) 4.[給iOS程序添加push代碼](http://blog.csdn.net/hherima/article/details/44854373) ======================正文======================= 客戶端需要處理三中情況: ### 1. 客戶端在前臺。通常是彈窗 ● iOS6 的-(void) application: didReceiveRemoteNotification:被調用 ● iOS7 的-(void) application: didReceiveRemoteNotification: fetchCompletionHandler:被調用 所以,為了兼容iOS6.通常的做法是,在-(void) application: didReceiveRemoteNotification: fetchCompletionHandler:中調用-(void) application: didReceiveRemoteNotification: 方法。 ●?push處理模塊,判斷一下程序是否是活躍 [UIApplication sharedApplication].applicationState == UIApplicationStateActive。 進而判斷是否需要彈出對話框。 ### 2. 客戶端在后臺,但是還活著 大致原理同第一條,注意處理是否彈框。 ### 3. 客戶端被殺死的狀態,進來push消息;滑動(點擊)push消息調起客戶端。 ● iOS 6調用 -(void) application: didFinishLaunchingWithOptions:帶有launchDictionary,里面包含了push消息 需要簡單處理一下,獲取真正的內容[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey] ● iOS 7以后調用兩個方法: -(void) application: didFinishLaunchingWithOptions: -(void) application: didReceiveRemoteNotification: fetchCompletionHandler: **這樣就有一個坑。iOS7以上,可能就重復處理同一個push消息了。** 【解決】:由于只有iOS7以上都會調用-(void) application: didReceiveRemoteNotification: fetchCompletionHandler:方法。 那么,為了兼容iOS6:在-(void) application: didFinishLaunchingWithOptions:中只處理iOS6。 4.現在的APP都有一個啟動圖過程。如果push消息過來,APP正好是被殺死狀態,且假設啟動后有啟動圖。 **這中push拉起APP后是直接處理push的,不彈框。** 【解決】首先想到的方法是:暫存這個push消息,然后等啟動圖完了再展示push內容。注意,等到啟動圖完成,再使用push模塊 [UIApplication sharedApplication].applicationState == UIApplicationStateActive就不好用了,因為此時APP應該是活躍的了,就需要彈框了。所以,需要push模塊支持一個強制不彈框的接口。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看