iOS 注册可分享文件类型

2017-11-15  本文已影响129人  不要人夸颜色好

最近开发的App 有个需求,需要获取本地的录音文件。找了半天没有找到好的解决方案,发现微信的方法是在 录音备忘录 中分享至微信。

苹果官方文档地址

注册可接受文件类型

因为我打开的是录音文件,这里就以 iOS 的录音文件为例 (*.m4a)

这里我要接受 m4a 文件,所以 注册类型为 public.audiopublic.data 代表可以接受任何类型的文件。如果想注册多个类型,可以在 Document types 下面继续添加 item

WX20171115-110036.png

这时看你的工程文件 info 选项卡中的 Document types,应该有你刚才注册的类型.

WX20171115-110007.png

接受文件代码

当文件分享至 App 时会调用 Appdelegate 的如下函数. 文件地址会在参数 url 中传入。

#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
{
    // dosomething
    return YES;
}
#else
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(nonnull NSDictionary<NSString *,id> *)options
{
    // dosomething
    return YES;
}
#endif

效果图如下


WX20171115-113750.png

注意,这里分享是显示的是拷贝至,点击更多,打开微信的 switcher 之后,会像上图一样多一个 '微信' 选项(没有'拷贝至'),它会在当前应用弹窗,给出分享逻辑。具体实现方法还不清楚,等有时间再研究。

WX20171115-113722.png

若有知道,还请赐教。

上一篇 下一篇

猜你喜欢

热点阅读