iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了有没有办法在没有用户或服务器干预的情况下唤醒iOS中暂停的应用程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_489_0@

概述

有没有办法唤醒iOS应用程序而不使用“重大变化位置服务”? 我需要唤醒我的应用程序,无需服务器或用户干预 类似于闹钟的一些东西,当你醒来的时候你得到一个警告弹出窗口. UILocalNotification – 无法工作,因为它需要用户和服务器干预. 无声推送通知 – 由于您无法将本地通知作为无声推送通知发送,因此无法正常工作.这些只能由服务器发送.这意味着它需要服务器干预 后台获取 – 由于没
有没有办法唤醒iOS应用程序而不使用“重大变化位置服务”?

我需要唤醒我的应用程序,无需服务器或用户干预
类似于闹钟的一些东西,当你醒来的时候你得到一个警告弹出窗口.

UIlocalnotification – 无法工作,因为它需要用户和服务器干预.

无声推送通知 – 由于您无法将本地通知作为无声推送通知发送,因此无法正常工作.这些只能由服务器发送.这意味着它需要服务器干预

后台获取由于没有保证的触发时间而无法工作

我错过了什么吗?

解决方法

编辑:您已调整问题以明确说明“无需用户或服务器干预”.

不,据我所知,设计iOS未提供明确的方法来在将来确定的时间唤醒您的应用程序.您可以在后台继续长时间运行的任务,机会性地获取更新的内容,提醒用户在需要时重新打开您的应用程序,并在需要时提示前两个用静音推送通知.

以下是上述三个选项的一些提示

UIlocalnotification

最简单的方法是在将来安排一次UILocalNotifications,但为了唤醒您的应用,您需要与通知进行交互.这可能不是你想要的.

无声推送通知

iOS 7以来的另一个选择是内容可用或静推送通知.您为此类通知设置了特定的有效负载,如果您的应用具有正确的UIBACkgroundMode值设置,它将以静方式传送到您的应用:

有效负载看起来像这样

{
    "aps" : {
        "content-available" : 1
    },"content-id" : 42
}

并且您将使用特定的委托方法在您的app委托中接收它:

- (void)         application:(UIApplication *)application 
didReceiveRemoteNotification:(NSDictionary *)userInfo 
      fetchCompletionHandler:(void (^)(UIBACkgroundFetchResult))completionHandler
{
    NSLog(@"Remote Notification userInfo is %@",userInfo);

    NSnumber *contentID = userInfo[@"content-id"];
    // Do something with the content ID
    completionHandler(UIBACkgroundFetchResultNewData);
}

然后,您可以使用此机会下载内容或在需要时快速更新您的应用程序,请查看UIBACkgroundModes和background execution documentation获取有关此方法的更多信息.

Objc.io上的Multi-Tasking文章也是这种方法的良好开端.

背景提取

如果您阅读Apple的background modes文档,可以使用UIBACkgroudnModes值获取来为您的应用程序提供机会性唤醒并给予时间下载或更新它的数据.

Apple关于此的文档提到了它的用例:

大佬总结

以上是大佬教程为你收集整理的有没有办法在没有用户或服务器干预的情况下唤醒iOS中暂停的应用程序全部内容,希望文章能够帮你解决有没有办法在没有用户或服务器干预的情况下唤醒iOS中暂停的应用程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。