菜鸟教程小白 发表于 2022-12-12 18:56:59

ios - 当用户在后台收到推送后手动打开应用程序时获取推送通知有效负载


                                            <p><p>我正在使用 iOS7,我正在尝试确定是否可以在以下情况下获取 JSON 有效负载。</p>

<ul>
<li>我启用了后台模式“远程通知”</li>
<li>在应用<em>终止</em></li>时收到推送通知
<li>应用是<em>从通知中心<strong>不是</strong>图标手动启动的</em></li>
</ul>

<p>当我在收到通知后从图标本身启动应用程序时,我没有在启动选项中得到推送</p>

<p><code>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
</code></p>

<p>从图标手动启动应用时也不会调用以下方法</p>

<p><code>
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
</code></p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我终于想通了如何获得这个! </p>

<p>从 iOS 7 开始,您可以获取它!</p>

<p>基本上,您需要为应用程序配置后台远程通知。 </p>

<p>所以,在您的 info.plist 文件中:
<code>对于所需背景</code> - 将其设置为<code>应用从推送通知中下载内容。</code></p>

<p>在<code>AppDelegate.m</code>文件中,需要实现这个方法:</p>

<p><code>- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler</code> </p>

<p>请参阅此处了解如何实现:<a href="https://stackoverflow.com/questions/22085234/didreceiveremotenotification-fetchcompletionhandler-open-from-icon-vs-push-not" rel="noreferrer noopener nofollow">didReceiveRemoteNotification: fetchCompletionHandler: open from icon vs push notification</a> </p>

<p>对于您的推送通知,您必须将 <code>'content-available': 1,</code> 作为推送通知的一部分。这就是在显示警报之前告诉应用程序有新内容的原因。 </p>

<p>有关后台远程通知的更多信息,请参阅此页面:<a href="http://developer.xamarin.com/guides/cross-platform/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/updating_an_application_in_the_background/" rel="noreferrer noopener nofollow">http://developer.xamarin.com/guides/cross-platform/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/updating_an_application_in_the_background/</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 当用户在后台收到推送后手动打开应用程序时获取推送通知有效负载,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21859012/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21859012/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 当用户在后台收到推送后手动打开应用程序时获取推送通知有效负载