莒韵京风 發表於 2019-10-10 11:34:00

iOS开发之iOS13推送deviceToken处理

<p>iOS13新出之后会有收不到推送的问题</p>
<p>因为iOS13的处理方法变了,代码如下</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取DeviceToken成功</span>
- (<span style="color: rgba(0, 0, 255, 1)">void</span>)application:(UIApplication *<span style="color: rgba(0, 0, 0, 1)">)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData </span>*<span style="color: rgba(0, 0, 0, 1)">)deviceToken
{
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Xcode11打的包,iOS13获取Token有变化</span>
    <span style="color: rgba(0, 0, 255, 1)">if</span> ([[ systemVersion] floatValue] &gt;= <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">) {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!]) {
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">记录获取token失败的描述</span>
            <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 0, 255, 1)">const</span> unsigned *tokenBytes = (<span style="color: rgba(0, 0, 255, 1)">const</span> unsigned *<span style="color: rgba(0, 0, 0, 1)">);
      NSString </span>*strToken = [NSString stringWithFormat:<span style="color: rgba(128, 0, 0, 1)">@"</span><span style="color: rgba(128, 0, 0, 1)">%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                              ntohl(tokenBytes[</span><span style="color: rgba(128, 0, 128, 1)">0</span>]), ntohl(tokenBytes[<span style="color: rgba(128, 0, 128, 1)">1</span>]), ntohl(tokenBytes[<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">]),
                              ntohl(tokenBytes[</span><span style="color: rgba(128, 0, 128, 1)">3</span>]), ntohl(tokenBytes[<span style="color: rgba(128, 0, 128, 1)">4</span>]), ntohl(tokenBytes[<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">]),
                              ntohl(tokenBytes[</span><span style="color: rgba(128, 0, 128, 1)">6</span>]), ntohl(tokenBytes[<span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">])];
      NSLog(</span><span style="color: rgba(128, 0, 0, 1)">@"</span><span style="color: rgba(128, 0, 0, 1)">deviceToken1:%@</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, strToken);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
    } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
      NSString </span>*token =<span style="color: rgba(0, 0, 0, 1)"> [NSString
                     stringWithFormat:</span><span style="color: rgba(128, 0, 0, 1)">@"</span><span style="color: rgba(128, 0, 0, 1)">%@</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,deviceToken];
      token </span>= ;
      token </span>= ;
      token </span>= ;
      NSLog(</span><span style="color: rgba(128, 0, 0, 1)">@"</span><span style="color: rgba(128, 0, 0, 1)">deviceToken2 is: %@</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">, token);
    }
}</span></pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/hecanlin/p/11646915.html
頁: [1]
查看完整版本: iOS开发之iOS13推送deviceToken处理