APPGroup笔记

2023-12-24  本文已影响0人  哈酒拎壶冲

APPGroup笔记

iOS8之后,苹果新增了APPGroup功能,多个应用程序可以通过同一个Group来共享资源,APPGroup可以通过NSUsedefaults进行小量数据的共享,如果需要共享较大的文件,可以通过NSFileCoordinator\NSFilePresenter等方式,主要应用在(extension拓展(uni-app插件)、多个app自动登录、小组件等)

使用appgroup准备工作流程

在开发者中心注册app group并在BounilID内部打开appgroup按钮选择创建的appgroupName.

b0cc013531167f05bacd73733448930.png
![99d1ccf336404d7236eb04d8b5c03dd.png](https://img.haomeiwen.com/i1421910/d7c4cebfb8c86021.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

项目中配置:在两个使用appgroup的程序中,targets->capability添加appgroup并选择group ID

WechatIMG315.png WechatIMG316.png

开启appGroup,两个应用T1和T2都需要添加一个相同的group name,APP之间通过这个group共享数据。

//T1通过appgroup的名字创建信号设置并设置数据
NSUserDefaults *mydefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.yss"];
[mydefaults setObject:@"share data" forKey:@"mykey"];

//T2通过app group的名字创建编号设置并读取数据
NSUserDefaults *mydefaults2 = [[NSUserDefaults alloc] initWithSuiteName:@"group.yss"];
NSString *contents = [mydefaults2 objectForKey:@"mykey"];

使用NSFileManger保存获取appgroup共享空间数据

实际开发中,比如这种需求:公司有两个app,登录一个app后,在下载第二个app会实现自动登录的功能,接下来用NSFileManger代码实现一下

//第一个app 共享文件appgroup.text写入数据
//共享文件appGroup.text中写入数据
//获取app group的共享目录
NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.temp.xxxx.xxxx"];//开发者平台自定义
NSURL *fileURL = [groupURL URLByAppendingPathComponent:@"tmp.txt"];
//写入文件
[@"hello-world" writeToURL:fileURL atomically:YES encoding:NSUTF8StringEncoding error:nil];

//读取数据 第二个app 通过获取tmp.txt的数据
//获取appgroup共享目录
NSURL *groupURL2 = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.temp.xxxx.xxxx"];
NSURL *fileURL2 = [groupURL2 URLByAppendingPathComponent:@"tmp.txt"];
//读取文件
NSString *str = [NSString stringWithContentsOfURL:fileURL2 encoding:NSUTF8StringEncoding error:nil];
上一篇 下一篇

猜你喜欢

热点阅读