betway必威手机版 > betway必威手机版登录 > iOS应用程序间共享数据

原标题:iOS应用程序间共享数据

浏览次数:84 时间:2020-03-26

大家知晓iOS由于沙盒的留存,应用程序不可能通过本身的区域去拜望别的存款和储蓄空间的剧情,可是或然有众多气象大家须要在应用程序之间分享数据,比如四个使用共用客户名密码举办登入等。纵然大家不能够平素通过文件系统来分享数据,但是依然微微措施能够达成,为了方便表明,这里还要创设了多个工程Example1和Example2,完成那七个app之间的音讯分享,Example1担任写多少,Example2担负读数据,具体的demo代码能够到那边收获

iOS由于沙盒的留存,应用程序不可能通过本人的区域去拜访其他存款和储蓄空间的内容,可是也可以有成都百货上千情景大家要求在应用程序之间共享数据,例如三个利用共用客商名密码举办登陆等。

剪贴板是应用程序之间传递数据的简便方法,建议不用接纳全局的粘贴板,而是自个儿根据名字创办一个新的粘贴板,幸免别之处全局拷贝的影响。然后把要求分享的剧情复制到粘贴板,粘贴板的剧情能够是文本、U途胜L、图片和UIColor等,另一个app就可以依照粘贴板的名字去读取相关的消息。

1、UIPasteboard

剪贴板是应用程序之间传递数据的大约方法,提议不要接收全局的粘贴板,而是自个儿依据名字创办多个新的粘贴板,幸免其余地点全局拷贝的震慑。然后把须求分享的内容复制到粘贴板,粘贴板的内容能够是文本、UKoleosL、图片和UIColor等,另一个app就可以依据粘贴板的名字去读取相关的新闻。

安装粘贴板的内容:

UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"myPasteboard" create:YES];

pasteboard.string = @"myShareData";

读取粘贴板的从头到尾的经过:

UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"myPasteboard" create:NO]; NSString *content = pasteboard.string;

Example1设置粘贴板的从头到尾的经过:

2、Custom URL Scheme

NSURL *myURL = [NSURL URLWithString:@"todolist://newid=20"];
[[UIApplication sharedApplication] openURL:myURL];
 UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"myPasteboard" create:YES]; pasteboard.string = @"myShareData";

3、Shared Keychain Access

封存数据到keychain(为了简单利用SSKeychian)

- (void)setKeyChain
{
 [SSKeychain setPassword:@"shareData" forService:@"myservice" account:@"jiangbin"];
}

读取数据

- (IBAction)getByKeychain:(id)sender
{
    NSString *myData = [SSKeychain passwordForService:@"myservice" account:@"jiangbin"];
}

4、App Groups
iOS8事后苹果加入了App Groups功用,应用程序之间能够透过同叁个group来分享能源,app group能够透过NSUserDefaults实行小量数据的分享,假诺急需分享超级大的文件能够通过NSFileCoordinator、NSFilePresenter等方法。
依照group name设置剧情:

- (void)setAppGroup 
{
    NSUserDefaults *myDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.jiangbin.SharedData"];
    [myDefaults setObject:@"shared data" forKey:@"mykey"];
}

基于group name读取数据

- (void)getByAppGroup 
{
    NSUserDefaults *myDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.jiangbin.SharedData"];
    NSString *content = [myDefaults objectForKey:@"mykey"];
}

Example2读取粘贴板的内容:

 UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"myPasteboard" create:NO]; NSString *content = pasteboard.string;

UEscortL Scheme能够让我们因此自定义的公约在应用程序间传递消息,当你想要发送数据给叁个兑现了自定义U索罗德L Scheme的应用时,只须求成立好合适格式的USportageL,然后调用openUOdysseyL:方法,系统就能载入注册了该scheme的施用然后将你的UPAJEROL传递给他,比如如下的代码,todolist是三个别样应用注册的scheme,通过openU奥迪Q3L便能够将服务央求发送到该利用(自定义的UQashqaiL Scheme要能够独一标示该应用软件,假设您的URubiconL Scheme跟人家冲突了,那么你的app就不必然会被调起,iOS并不保障调用哪个应用)。

NSURL *myURL = [NSURL URLWithString:@"todolist://newid=20"];[[UIApplication sharedApplication] openURL:myURL];
  • 注册U福睿斯L Scheme为了可以管理U兰德酷路泽L央求,大家须求先挂号自定义的U酷路泽L Scheme,只须要在Info tab下的U奥迪Q7L Types增添就能够,举例大家这里注册Example2的UENCOREL Scheme。

图片 1注册URL scheme

Identifier用于标示名称,为了独一性能够利用反转域名的格局,其它大家设置URubiconL Scheme为Example2,甚至role为Viewer(Viewer代表只可以读取改U昂科拉L但不可能改善,Editor能够对UPAJEROL实行读写卡塔尔国,那样Example2就可以预知担任相符"Example2:"的UTucsonL需要了,能够在浏览器中输入"Example2:"链接展开app。

  • 处理URL请求

当有U奥迪Q5L诉求到来时,全数的UWranglerL都会传递给你的app delegate,大家供给得以达成application:openU奥迪Q5L:sourceApplication:annotation:方法来选用管理相应的ULX570L,所以借令你想透过U卡宴L方式来传递数据,只必要将数据增进到U奇骏L中就可以,此外的经过解析该URubiconL来取得相应的数目。

Eaxmple1发送带领参数的U瑞虎L到Example2:

NSString *string = @"Example2://name=jiangbin#age=1";NSURL *url = [NSURL URLWithString:string];[[UIApplication sharedApplication] openURL:url];

本文由betway必威手机版发布于betway必威手机版登录,转载请注明出处:iOS应用程序间共享数据

关键词: 日记本 iOS 数据 应用程序

上一篇:Swift之CoreText排版神器,CoreText知识积累

下一篇:没有了