iOS之App外由網(wǎng)頁(H5)打開App并跳轉(zhuǎn)指定頁面

前言:

我負(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è)置

image

需要注意的是,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)然還有更多的功能,感興趣的話可自行查看文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容