把自己的应用添加到系统的“分享”列表中

把自己的应用添加到系统的“分享”列表中,第1张

在清单文件中,建立自己分享的Activity,然后陵知在该Activity的标签下新增一个intent-filter,注意是新增一个,不要跟原先的一块,要不然不生效;

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的文件了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11985657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存