IOS_通用鏈接Universal Link介紹及使用

本文主要內(nèi)容參考此文章,主要是為了記錄


產(chǎn)品需求

用戶從qq/微信分享出去的H5頁(yè)面滞诺,當(dāng)點(diǎn)擊H5頁(yè)面的某個(gè)按鈕時(shí)飘哨,要實(shí)現(xiàn)如下功能:

1.當(dāng)用戶未安裝App時(shí)扫茅,跳轉(zhuǎn)到AppStore頁(yè)面引導(dǎo)用戶下載

2.當(dāng)用戶已安裝App時(shí),喚醒App并跳轉(zhuǎn)到App里面的某一個(gè)指定頁(yè)面

傳統(tǒng)的url schema實(shí)現(xiàn)方式存在兩個(gè)弊端逗嫡,一是跳轉(zhuǎn)的時(shí)候會(huì)有一個(gè)提示框:“是否打開(kāi)XXX”青自,用戶體驗(yàn)不好,二是微信屏蔽了URL Scheme驱证,必須是在微信的白名單里面才可跳轉(zhuǎn)延窜,也就意味著用戶在微信里面是無(wú)法一鍵直達(dá)App的。這對(duì)于大多數(shù)公司來(lái)講抹锄,是難以承受的逆瑞。而通用鏈接Universal Link正是可以解決上述問(wèn)題的技術(shù)手段。

通用鏈接介紹及優(yōu)點(diǎn)

通用鏈接介紹及優(yōu)點(diǎn)預(yù)留位置

通用鏈接具體實(shí)施步驟

這里可以分兩種實(shí)現(xiàn)方式伙单,第一種是自己去配置通用鏈接获高,第二種是通過(guò)一些第三方SDK來(lái)實(shí)現(xiàn)此功能。

①自己配置通用鏈接
iOS的UniversalLink開(kāi)發(fā)總結(jié) 不建議問(wèn)題太多

②用第三方SDK去集成配置(魔窗吻育,LinkedME等)
下面以魔窗為例念秧,講解如何配置。魔窗iOS集成文檔

用魔窗的話iOS端只需要做三部分操作布疼,分別是魔窗后臺(tái)配置部分摊趾,Xcode配置部分,代碼實(shí)現(xiàn)部分缎除。下面將詳細(xì)描述步驟严就。

魔窗后臺(tái)配置部分

①注冊(cè)一個(gè)魔窗賬號(hào) 魔窗注冊(cè)
②賬號(hào)注冊(cè)完畢后,登錄魔窗點(diǎn)擊右上角新增產(chǎn)品然后選擇App器罐。

_CLAY_.png

_CLAY_.png

③要填寫(xiě)的信息分為三部分梢为,分別是產(chǎn)品信息,App信息轰坊,魔窗位信息铸董。魔窗位信息可以不填。
_CLAY_.png

④想要使用深度鏈接肴沫,還需要配置魔窗的mlink服務(wù)粟害,如下圖
_CLAY_.png

至此,魔窗的所有配置均已做完颤芬。

小結(jié):魔窗的配置是為了獲得五個(gè)關(guān)鍵參數(shù)悲幅,以供后面配置使用套鹅。分別是URL Scheme,魔窗App key汰具,魔窗mLink key 魔窗域名 魔窗短連接卓鹿。
Xcode配置部分

Xcode這邊配置非常容易,就兩步即可留荔。

①配置URL Scheme 這里的identifier可填可不填沒(méi)影響吟孙,URL Schemes這里填在魔窗后臺(tái)配置時(shí),你寫(xiě)的URL Scheme聚蝶,魔窗跟Xcode這里二者必須保持一致

②applinks配置 這里的Domains一定要填你之前在魔窗配置后獲得的那個(gè)魔窗域名杰妓,這里要保證不能出差錯(cuò),否則無(wú)法完成跳轉(zhuǎn)


_CLAY_.png

Xcode的配置到這里就完成了碘勉。

代碼實(shí)現(xiàn)部分

①集成魔窗sdk巷挥,手動(dòng)和cocopods兩種方式,手動(dòng)請(qǐng)參考魔窗文檔验靡,下面只講cocopods集成

pod 'MagicWindowSDK'

pod install

記住不要pod update句各,因?yàn)槟Т皊dk自己集成了微信分享,非常容易跟shareSDK 友盟分享SDK沖突晴叨。

②Appdelegate中實(shí)現(xiàn)注冊(cè)魔窗

//引入魔窗的SDK頭文件
#import "MWApi.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [MWApi registerMLinkDefaultHandler:^(NSURL * _Nonnull url, NSDictionary * _Nullable params) {
        NSLog(@"%@",params);
        
        [self jumpToControllerWith:params];
        
    }];
    
    [MWApi registerMLinkHandlerWithKey:@"iOSXZNSGoddessZhunleKey" handler:^(NSURL *url, NSDictionary *params) {
        //自行處理跳轉(zhuǎn)邏輯凿宾,示例如下:
        NSLog(@"%@",params);
        
        [self jumpToControllerWith:params];
        
    }];
}

- (void)jumpToControllerWith:(NSDictionary *)userInfoDic {
    
    UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
    UIViewController *currentVC = [self getCurrentVCFrom:rootViewController];//首先獲取當(dāng)前所在的控制器
    
    if ([[userInfoDic objectForKey:@"xxx"] isEqualToString:@"xxx"]) {
        //根據(jù)需求可以在這里判斷頁(yè)面的跳轉(zhuǎn)
    } else {
        //根據(jù)需求可以在這里判斷頁(yè)面的跳轉(zhuǎn)
    }
}

- (UIViewController *)getCurrentVCFrom:(UIViewController *)rootVC {
    UIViewController *currentVC;
    if ([rootVC presentedViewController]) {
        // 視圖是被presented出來(lái)的
        rootVC = [rootVC presentedViewController];
    }
    if ([rootVC isKindOfClass:[UITabBarController class]]) {
        // 根視圖為UITabBarController
        currentVC = [self getCurrentVCFrom:[(UITabBarController *)rootVC selectedViewController]];
    } else if ([rootVC isKindOfClass:[UINavigationController class]]){
        // 根視圖為UINavigationController
        currentVC = [self getCurrentVCFrom:[(UINavigationController *)rootVC visibleViewController]];
    } else {
        // 根視圖為非導(dǎo)航類(lèi)
        currentVC = rootVC;
    }
    return currentVC;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市兼蕊,隨后出現(xiàn)的幾起案子初厚,更是在濱河造成了極大的恐慌,老刑警劉巖孙技,帶你破解...
    沈念sama閱讀 212,029評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件产禾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡牵啦,警方通過(guò)查閱死者的電腦和手機(jī)亚情,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哈雏,“玉大人楞件,你說(shuō)我怎么就攤上這事∩驯瘢” “怎么了土浸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,570評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)彭羹。 經(jīng)常有香客問(wèn)我黄伊,道長(zhǎng),這世上最難降的妖魔是什么派殷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,535評(píng)論 1 284
  • 正文 為了忘掉前任还最,我火速辦了婚禮墓阀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拓轻。我一直安慰自己岂津,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布悦即。 她就那樣靜靜地躺著,像睡著了一般橱乱。 火紅的嫁衣襯著肌膚如雪辜梳。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,850評(píng)論 1 290
  • 那天泳叠,我揣著相機(jī)與錄音作瞄,去河邊找鬼。 笑死危纫,一個(gè)胖子當(dāng)著我的面吹牛宗挥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播种蝶,決...
    沈念sama閱讀 39,006評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼契耿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了螃征?” 一聲冷哼從身側(cè)響起搪桂,我...
    開(kāi)封第一講書(shū)人閱讀 37,747評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盯滚,沒(méi)想到半個(gè)月后踢械,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡魄藕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評(píng)論 2 327
  • 正文 我和宋清朗相戀三年内列,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片背率。...
    茶點(diǎn)故事閱讀 38,683評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡话瞧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寝姿,到底是詐尸還是另有隱情移稳,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評(píng)論 4 330
  • 正文 年R本政府宣布会油,位于F島的核電站个粱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏翻翩。R本人自食惡果不足惜都许,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評(píng)論 3 315
  • 文/蒙蒙 一稻薇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胶征,春花似錦塞椎、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,772評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至钱雷,卻和暖如春骂铁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背罩抗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,004評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工拉庵, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人套蒂。 一個(gè)月前我還...
    沈念sama閱讀 46,401評(píng)論 2 360
  • 正文 我出身青樓钞支,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親操刀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子烁挟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容