iOS Universal Link 結(jié)合第三方實(shí)現(xiàn)微信喚起app

一. 微信跳轉(zhuǎn)app簡(jiǎn)介

  1. 能實(shí)現(xiàn)什么樣的跳轉(zhuǎn)? 由webView喚起app.
  • webView如果用safari打開, 將喚起app, 這是原生的功能
  • webView的按鈕可以喚起app, 這是第三方的功能
  1. 為什么不能使用URL Scheme 實(shí)現(xiàn)app? 因?yàn)槲⑿沤?

一. Universal Link 基本使用

可參見這篇文章 <a href="http://www.reibang.com/p/96649a73795b">iOS Universal Link(通用鏈接)</a>

三. 第三方網(wǎng)站: LinkedMe

此處我們利用第三方網(wǎng)站來實(shí)現(xiàn)

  1. linkedMe官網(wǎng)
  2. 技術(shù)支持QQ群: <em>209222314</em>

四. 集成步驟

  1. 自己注冊(cè)得到LinkedME Key
  2. 此處我使用cocopods集成, 在Podfile中添加:
pod 'LinkedME-iOS-Deep-Linking-SDK_Pod_IDFA',:git=>"https://github.com/WFC-LinkedME/LinkedME-iOS-Deep-Linking-Demo.git"
  • 注: 文檔中的pod地址不對(duì), 上述地址是我詢問 技術(shù)支持 得到.
  1. 配置URL Types:

    配置`URL Types`

  2. 配置 LinkedME Keyinfo.plist :

    配置 `LinkedME Key`.png

  • LinkedME Key 來自:
    `LinkedME Key`.png
  1. 配置Associated Domains:
    `Associated Domains.png
  • 注: 此處我配置了4值:
  • 1與2 是我們的后臺(tái)正式與測(cè)試url
  • 3與4 是LinkedMe 要求的配置
  1. 配置LinkedMe 官網(wǎng)需要的信息: Bundle ID, Apple App Prefix, URI Scheme
  • 6.1 相關(guān)配置界面進(jìn)入路徑:


    路徑.png
  • 6.2 6.2 配置上述三個(gè)值: Bundle ID, Apple App Prefix, URI Scheme

    Bundle ID`, `Apple App Prefix`, `URI Scheme`.png

  1. 集成代碼:
  • 注: 需要JS端集成相關(guān)JS SDK, 幾分鐘即可集成完畢.

  • 7.1 在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 集成:

+ (void)yh_setupDeepLinkWithLaunchOptions:(NSDictionary *)launchOptions{
    ///deep link, 第三方linkedMe
    
    //初始化及實(shí)例
    LinkedME *linkedme = [LinkedME getInstance];
    
    //獲取跳轉(zhuǎn)參數(shù)
    [linkedme initSessionWithLaunchOptions:launchOptions automaticallyDisplayDeepLinkController:NO deepLinkHandler:^(NSDictionary* params, NSError* error) {
        if (!error) {
            //防止傳遞參數(shù)出錯(cuò)取不到數(shù)據(jù),導(dǎo)致App崩潰這里一定要用try catch
            @try {
                
                YHLinkedMeM *linkedMeM = [YHLinkedMeM mj_objectWithKeyValues:params];
                
                if (linkedMeM.$control.link.length >0) {
                //if (title.length >0 && tag.length >0) {
                    //如果app需要登錄或者注冊(cè)后,才能打開詳情頁结耀,這里可以先把值存起來竭钝,登錄/注冊(cè)完成后净赴,再使用
                    
                    //自定義跳轉(zhuǎn), 下面是我自己的方法, 不是linkedMe的
                    [self yh_jumpTriggeredByDeepLinkWithLink:linkedMeM.$control.link];
                    
                }
            } @catch (NSException *exception) {
                
            } @finally {
            }
        } else {
            YHLog(@"LinkedME failed init: %@", error);
        }
    }];
    
}

注:

  • 1 )上面是我封裝的一個(gè)方法.
    1. Deep Link喚起app, 無論此時(shí)app在后臺(tái)還是前臺(tái), 都會(huì)調(diào)用這個(gè)回調(diào), 所有相關(guān)邏輯要在這個(gè)回調(diào)中處理:
      處理回調(diào).png
  • 7.2 必須實(shí)現(xiàn)的3個(gè)方法
  • 7.2.1 方法一
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
    
    if ([[userActivity.webpageURL description] rangeOfString:@"lkme.cc"].location != NSNotFound) {
        return  [[LinkedME getInstance] continueUserActivity:userActivity];
        
    }else if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) { //safari 跳轉(zhuǎn)處理
        
        NSURL *webpageURL = userActivity.webpageURL;
        
        NSString *urlString = webpageURL.absoluteString;
        
        NSString *host = webpageURL.host;
        if ([host isEqualToString:@"app.cuiyuhe.com"] ||
            [host isEqualToString:@"apptest.cuiyuhe.com"]) {
            //進(jìn)行我們需要的處理
            [YHDeepLinkTool yh_jumpTriggeredByDeepLinkWithLink:urlString];
        }
        
    }
    
    return YES;
}

  • 7.2.2 方法二
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation{
    //判斷是否是通過LinkedME的UrlScheme喚起App
    if ([[url description] rangeOfString:@"click_id"].location != NSNotFound) {
        return [[LinkedME getInstance] handleDeepLink:url];
    }
   
    return YES;
}
  • 7.2.3 方法三
//判斷url 打開鏈接
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
   
    // 跳轉(zhuǎn)自己控制器, scheme跳轉(zhuǎn)
    NSString *kJumpPrefixStr = @"cuiyuhe://";
    if ([url.absoluteString hasPrefix:kJumpPrefixStr]) {
       
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            NSString *urlStr = url.absoluteString;
            
            NSString *subString = [urlStr substringFromIndex:kJumpPrefixStr.length];
            NSString *ecodeStr=[self URLDecodedString:subString];
            FMDetailsView *detailsView = [[FMDetailsView alloc]init];
            detailsView.hidesBottomBarWhenPushed = YES;
            detailsView.linkUrl = ecodeStr;
            [[FMTabBarViewController sharedManager].selectedViewController pushViewController:detailsView animated:YES];
           
           
        });
        return YES;
    }
   
   
    /********* linkedMe --------- begin ********/
    //判斷是否是通過LinkedME的UrlScheme喚起App
    if ([[url description] rangeOfString:@"click_id"].location != NSNotFound) {
        return [[LinkedME getInstance] handleDeepLink:url];
    }
   
    /********* linkedMe --------- end *********/
   
    return YES;
}

四. 聲明

我也只是linkedMe的一個(gè)用戶, 且認(rèn)為解決了我的需求, 沒有任何推銷之意 :)
類似的平臺(tái)還有魔窗mLink等, 但是我沒用過, 就不說啦.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末萤衰,一起剝皮案震驚了整個(gè)濱河市渡蜻,隨后出現(xiàn)的幾起案子碱璃,更是在濱河造成了極大的恐慌,老刑警劉巖勾效,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異叛甫,居然都是意外死亡层宫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門其监,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萌腿,“玉大人,你說我怎么就攤上這事抖苦』倭猓” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵锌历,是天一觀的道長(zhǎng)贮庞。 經(jīng)常有香客問我,道長(zhǎng)究西,這世上最難降的妖魔是什么窗慎? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上遮斥,老公的妹妹穿的比我還像新娘峦失。我一直安慰自己,他們只是感情好术吗,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布尉辑。 她就那樣靜靜地躺著,像睡著了一般较屿。 火紅的嫁衣襯著肌膚如雪隧魄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天吝镣,我揣著相機(jī)與錄音堤器,去河邊找鬼。 笑死末贾,一個(gè)胖子當(dāng)著我的面吹牛闸溃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拱撵,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼辉川,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了拴测?” 一聲冷哼從身側(cè)響起乓旗,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎集索,沒想到半個(gè)月后屿愚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡务荆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年妆距,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片函匕。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡娱据,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盅惜,到底是詐尸還是另有隱情中剩,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布抒寂,位于F島的核電站结啼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏屈芜。R本人自食惡果不足惜妆棒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糕珊,春花似錦动分、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至喇肋,卻和暖如春坟乾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝶防。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工甚侣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人间学。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓殷费,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親低葫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子详羡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)嘿悬,斷路器实柠,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件善涨、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,064評(píng)論 4 62
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議窒盐。它實(shí)...
    香橙柚子閱讀 23,797評(píng)論 8 183
  • 萬事有因果。 王寶強(qiáng)離婚钢拧,原因是老婆劈腿蟹漓。 而老婆劈腿的原因,相當(dāng)多網(wǎng)友認(rèn)為“說一千道一萬還不是因?yàn)閷殞毘蟆薄俺笫?..
    蔣沛711022閱讀 360評(píng)論 0 0
  • 喜歡攝影娶靡,喜歡旅游。但無奈本人還是學(xué)生黨看锉,還沒攢下錢去買單反姿锭,卻發(fā)現(xiàn)手機(jī)也能記錄最美好的瞬間。 和...
    流氓都是兔閱讀 435評(píng)論 3 8