一个应用可以打开外部的应用,那么说明这个应用也可以被外部的应用打开。开发者可以使用Info.plist为自己的应用注册可以支持的URL类型。创建OpenFromURLPractise项目,在Info.plist中增加键值,如图9.4.5所示:
图9.4.5 OpenFromURLPractise项目中的Info.plist
在Info.plist增加CFBundleURLTypes键,其对应的值为一个数组,每个数组元素又是一个字典类型。这个元素中有两个键值对CFBundleURLName和CFBundleURLSchemes,分别指定URL的标识名和打开URL的协议。本例中使用openFromURL作为协议,使用“com.01kuaixue.openFromURL”作为跳转的标识。在AppDelegate中增加函数实现如下:
动手写9.4.2 OpenFromURLPractise->AppDelegate.swift
使用鼠标左键点击住工程,等到Scheme弹窗出现图9.4.6所示界面,手动选择Edit Scheme,紧接着会出现图9.4.7的界面,再将launch的配置改为“Wait for executable to be launched”。
图9.4.6 项目的Scheme弹窗 (www.xing528.com)
图9.4.7 项目的Scheme配置
运行模拟器,我们会发现应用并没有启动起来。这个时候打开模拟器中的浏览器Safari,在地址栏输入“openFromURL://”,再按下回车键,此时浏览器会弹出提示框询问用户是否同意用OpenFromURLPractise应用打开这个链接的页面,如图9.4.8所示:
图9.4.8 从Safari打开应用
点击“Open”,Safari就会打开OpenFromURLPractise应用,此时控制台输出如下:
url参数是应用被唤醒时的URL链接,options参数是一个带有两个键值对的字典,键UIApplicatio nOpenURLOptionsSourceApplicationKey带有一个外部应用的BundleID,键UIApplicationOpenURLOptionsOpenInPlaceKey带有的是从外部传进来的参数,用于应用间通信。开发者可以在URL或者传入的参数中携带上一些有意义的数据,在打开应用之后进行更多的操作,以满足更多的应用场景。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。