mimeType代表支持分享的类型:
然后在界面中回去intent的action进行判断,并回去data的内容即可
详细查颂汪孙看官方野链文档: https://developer.android.com/guide/topics/manifest/data-element.html
这里主要讲利用分享扩展(share extension)实现系统分享到自己app的功能,扩展里面跳转宿主app,及数据传输等
创建成功会生成一个文件夹
info.plist 里面有激活扩展的规则,匹配规则会在系统分享里面出现自己的app。
NSExtensionActivationRule:默认则尘为字符串“TRUEPREDICATE”,表示在分享菜单中一直显示该扩展。生产环境不可用,必须将类型改为Dictionary类型,然后添加以下字段:
默认分拍盯迅享扩展类ShareViewController,自带视图,可以全部自定义,这里不讲诉
跳袭此转宿主app后在一下方法中处理逻辑
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id>*)options
首先要配置相同的 App Groups,必须group.开头
NSUserDefaults *de = [[NSUserDefaults alloc]initWithSuiteName:@"group.(跟上面app groups一致)"]
[de setObject:value forKey:@"key"]
宿主app 获取数据
NSUserDefaults *de = [[NSUserDefaults alloc]initWithSuiteName:@"group.(跟上面app groups一致)"]
id value = [de objectForKey:@"key"]
扩展要选择对应宿主app运行,但扩展属于独立进程,调试的时候运行扩展,宿主app里面的断点不会走,同样运行宿主app,扩展里面的断点不会执行
这里需要将其他应用的文件分享到我们自己的应用,让我们的应用出现在任何文件分享的情况下
效果如图:销猜亩
分享过来的文件,会存在沙盒下的Documents/兆扒Inbox文件夹下。
可以在AppDelegate中重写openURL方法
这里需要注意NSURL转NSString,需要用亏森UTF-8处理下。
这样就可以获取其他App的文件了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)