前言
ios跨软件分享是基于Share Extension和协议跳转实现的,本篇中讲主要讲解Share Extension是如何创建的。
什么是Share Extension?
shareExtension苹果在iOS8后开放给用户使用,俗称分享扩展是应用扩展的一种(包括:分享扩展,Today扩展、Action扩展、键盘扩展等等),分享扩展允许开发者扩展应用的自定义功能和内容,能够让用户在使用其他app时使用该项功能。扩展不是一个可以独立使用的应用,它必须依附在一个应用上才能发挥作用,有点像一个动态库,所有的app都可以使用,需要时系统会调用这个扩展,临时搭建一个环境来完成一些事情,完成后系统终止该扩展的运行。
Share Extension
- 注:扩展不能单独创建,必须依赖于应用工程项目
创建Share Extension
1、打开项目设置,在TARGETS侧栏地下点击“+”号来创建一个新的Target,如图:

2、然后选择”iOS” -> “Application Extension” -> “Share Extension”,点击“Next”。如图:

3、给扩展起个名字,这里填写了“Share”,点击“Finish”。如图:

4、这时候会提示创建一个Scheme,点击“Activate”。如图:

那么,直到这里创建Share Extension的工作就算是完成了。接下来可以先进行一下编译运行。这里跟做App开发的时候会稍微有点不一样。因为Extension是需要Host App(宿主应用)来运行的。所以,XCode中会弹出界面让我们选择一个iOS的App来运行Extension。如图:

这里我选择了XCode建议的应用Safari,然后点击“Run”来进行调试运行。XCode会启动Safari,如图:

能看到Safari中间的分享按钮是灰色不可用的。别急,你还没打开一个网页呢_。我们随便点开一个网页,可以看到分享按钮变为激活状态。点击分享按钮就会弹出分享菜单,如图:

可以看到刚才建立的Share扩展已经显示在面板上了,如果你没有发现自己的扩展,那么你可以将菜单滑动到最右边,在“更多”选项中激活自己的扩展。如图:

我们点击自己创建的分享项,其弹出一个分享窗口。如图:

备注:如果在更多中没有找到Share拓展,有可能是创建的Share拓展版本太高,如下图所示:
版本配置
网友评论