前言:
我負(fù)責(zé)努力,其余交給運(yùn)氣。
正文:
APP中,如果做分享功能的話,大家可能很熟悉也會(huì)覺得很簡(jiǎn)單。但是如果需求說,分享出去的網(wǎng)頁,須可在網(wǎng)頁中打開App呢?而且要跳轉(zhuǎn)到App當(dāng)中的指定頁面?初聽的時(shí)候可能懵一下下~~ 但是不要慌,其實(shí)很簡(jiǎn)單,一共有三中解決方案。
1. 配置URL Scheme:
我們都知道,蘋果的沙盒,App之間相互隔絕。URL Scheme是為了方便App之間的相互調(diào)用而設(shè)計(jì)的,我們可以注冊(cè)自己的URL Scheme,然后經(jīng)過系統(tǒng)的OpenURL來打開該App,并且可以傳遞一些參數(shù)。
1.1 URL Scheme的設(shè)置

需要注意的是,URL Scheme必須能唯一標(biāo)識(shí)一個(gè)APP,如果你設(shè)置的URL Scheme與別的APP的URL Scheme沖突時(shí),你的APP不一定會(huì)被啟動(dòng)起來。例如可以設(shè)為:iOS+公司英文名+ 項(xiàng)目工程名 ,比如設(shè)為iOSCompanyApp,在瀏覽器中輸入地址iOSCompanyApp://即可跳轉(zhuǎn)到App,相同的:h5小伙也可以通過調(diào)用iOSCompanyApp://來打開App了。
1.2 跳轉(zhuǎn)到指定頁面
iOSCompanyApp://后面是可以添加參數(shù)的,例如iOSCompanyApp://pageType?name=tom,其打開App會(huì)調(diào)用AppDelegate的代理方法:
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
我們可以拿到參數(shù)url,url為:iOSCompanyApp://pageType?name=tom,接下來我們可以對(duì)其進(jìn)行操作。
- url.scheme:可以獲取到iOSCompanyApp,我們可以對(duì)其判斷然后進(jìn)行后續(xù)操作。
- url.host:可以獲取到pageType,個(gè)人覺得,可以在此判斷需跳轉(zhuǎn)的頁面。
- url.query:可以獲取到name=tom,在此可以進(jìn)行切割字符串,獲取參數(shù)。
通過以上獲取到的信息,我們可以按照自己的項(xiàng)目邏輯,進(jìn)行相應(yīng)的頁面跳轉(zhuǎn)。整體下來,是不是so easy~~
附:
/**獲取Window當(dāng)前顯示的ViewController*/
- (UIViewController*)currentViewController{
//獲得當(dāng)前活動(dòng)窗口的根視圖
UIViewController* vc = [UIApplication sharedApplication].keyWindow.rootViewController;
while (1)
{
//根據(jù)不同的頁面切換方式,逐步取得最上層的viewController
if ([vc isKindOfClass:[UITabBarController class]]) {
vc = ((UITabBarController*)vc).selectedViewController;
}
if ([vc isKindOfClass:[UINavigationController class]]) {
vc = ((UINavigationController*)vc).visibleViewController;
}
if (vc.presentedViewController) {
vc = vc.presentedViewController;
}else{
break;
}
}
return vc;
}
2. 配置Universal link
Universal Link是蘋果在WWDC 2015上提出的iOS 9的新特性之一。此特性類似于深層鏈接,并能夠方便地通過打開一個(gè)Https鏈接來直接啟動(dòng)您的客戶端應(yīng)用(手機(jī)有安裝App)。對(duì)比URL Sheme, URL Sheme必須已安裝App,未安裝App并不會(huì)跳轉(zhuǎn)App Store引導(dǎo)安裝,而Universal Link未安裝App時(shí)會(huì)引導(dǎo)用戶前往App Store,這種新特性在實(shí)現(xiàn)web-app的無縫鏈接時(shí)能夠提供極佳的用戶體驗(yàn)。
Universal Link配置,網(wǎng)上文檔很多,可自行查找。
3. 極光魔鏈
集成&配置文檔
極光魔鏈,是一個(gè)第三方,配合使用URL Scheme或者Universal link。它對(duì)比單純的Universal link,是可以做到場(chǎng)景還原。也就是說,當(dāng)用戶并沒有安裝App時(shí),如果用Universal link,雖說可以引導(dǎo)用戶去下載安裝,但是安裝成功后啟動(dòng)App,無法獲取到網(wǎng)頁打開App的一些參數(shù),也就無法跳轉(zhuǎn)到指定頁面。而極光魔鏈配合Universal link,可以保留Universal link原有的優(yōu)點(diǎn),而且可以做到場(chǎng)景還原。(當(dāng)然還有更多的功能,感興趣的話可自行查看文檔)