参考文章:
iOS 添加到主屏幕/ iOS Add To Desktop
在上面文章和其他资料基础上实现此功能,详细介绍和技术点可参考上述文章。Demo是以第三方CocoaHTTPServer为基础,建立本机服务器,调起Safari创建快捷方式。
步骤:
1.Pod第三方CocoaHTTPServer和GTMBase64,或者下载之后导入项目。
2.导入DLAddToDesktopLib文件夹(感谢第一篇作者的Demo,文件夹也来源于此)。与原作者相比,稍微有一些改动,具体如下:
a.DLAddToDesktopHandler.m,增加了应用处于前后台的通知,防止应用在启动Safari过程中开启服务(来源第二篇文章)。如果不加此通知,在第一次点击添加快捷方式时,若之前Safari未启动,启动之后页面会卡住,并且无法显示html页面,再次返回程序点击快捷方式,虽然会加载html页面,但是控制台Log提示服务器重复连接错误。
b.将index.html和content.html的内容以及路径进行更改(自作主张,未仔细研究原作者的html文件),但是文件中替换的变量还是沿用原作者的。
c.此时,如果在项目中#import “DLAddToDesktopHandler”,会出错。需要在Build Phases中加入.m文件,另外bundle资源也需要加入Bundle Resources中。如下图,直接从左边拖入右边即可。
3.设置Info.plist文件,如下图
4.如果点击快捷方式,需要获取参数,需要在AppDelegate中实现
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options NS_AVAILABLE_IOS(9_0);
注意:
1.本文DEMO地址
2.原作者在html文件中做了AppStore引导,所以有需要请查看原作者文章移动端Hybrid-iOS添加快捷方式到主屏幕