Deep Linking 深度鏈結 2

2021-08-09 17:11:59 字數 2296 閱讀 1108

目前處理 deep linking,主要有兩種方式:

1

2

3

4

5

6

bool handled = no;

// code to handle the url

returnhandled;

}

在 ios 7+ 上處理query的時候也可以配合使用nsurlcomponents類。

具體選型或自己實現 router 的時候主要考慮一些問題比如:用 code 註冊還是配置檔案;是否需要去中心化;如何傳參;以 view controller 還是 block (closure) 為單位來註冊 handler;是否需要像**一樣做 web 版的 failover 等等……這裡不再展開。

universal links 本身可以被搜尋引擎索引。

處理 url 本身的方法跟前面處理 custom url 類似,不再贅述。

使用者匹配(user matching),如何把乙個 install 對應到某一次 web page view 或者某一次 click。

deep linking

以前在使用 custom url 的時候一般用類似這樣的一段 js 處理:

1

2

3

4

window.location ='lexie://';

settimeout(function() , 250);

這曾經是個老大難的問題,受系統所限,在 ios 上很難追蹤到乙個安裝的**,但是這樣的需求又很多,主要的場景有:

這個問題卻在 ios 9 引入sfsafariviewcontroller以後得到了很好的解決,因為sfsafariviewcontroller和 safari 的 cookies 是互通的!所以理論上可以做到 100% 的 match。解決方案也很簡單,本地生成乙個uuid並通過乙個隱藏的sfsafariviewcontroller傳回給 server,server 就可以把這個uuid跟之前的 session 對應起來,然後通過一般的 api call 查詢更多跟這個 session 有關的資訊。具體的 code 可以參考 branch sdk 的實現。

上個章節已經提到,不再贅述,只是處理 url 的入口換成了某個 api 請求的 callback 裡。

branch 的優勢在於免費,sdk 和 api doc 都寫的比較好,而且有一些特殊的功能比如使用者邀請及獎勵之類的,適合做一些運營活動。另外 branch 可以實現乙個 link 根據平台自動跳轉不同 store,甚至可以在 desktop 上通過簡訊傳送可以追蹤的鏈結。缺點是 branch 運營時間不久,服務穩定性有待驗證,dashboard 的功能也還比較輕量。

branch 的整合比較簡單,參見官方文件。乙個需要注意的是,自己實現的時候在 handle url 或者 user activity 的時候可以直接處理 url,但是用 branch 的時候,第一級的 url 是 branch 的 url,所以要通過[[branch getinstance] handledeeplink:url]和/或[[branch getinstance] continueuseractivity:useractivity]交由 branch 處理,然後在 init branch 時傳入的 block (closure) 中處理各類引數:

1

2

3

4

5

6

7

8

[branch initsessionwithlaunchoptions:launchoptions andregisterdeeplinkhandler:^(nsdictionary *params, nserror *error)

}];

深度學習資源鏈結 更新中

神經網路入門 caffe快速入門 cnn的反向傳播 caffe原始碼學習筆記 cnn入門基礎 感知域說的很清楚 caffe使用基礎 星空下的巫師 c 版本 caffe cnn visual connet cnn的視覺化 cnn softmax公式推導 cnn人臉檢測 matconvet cs231 ...

深度學習 目標檢測相關部落格鏈結

這篇部落格主要記錄網上看到覺得寫還不錯的部落格鏈結,但其中不乏有主題重複的文章。有相同方向的同學可以關注一下這篇部落格,一起討論目標檢測方面的問題。部落格會一直更新,如果很長時間沒有看到我更新,那可能我已經轉行了,哈哈,開個玩笑。計算機視覺基礎 最近鄰插值 雙線性插值 雙三次插值 非極大值抑制演算法...

深度解析 Qt 中動態鏈結庫

qlibrary也是用來載入動態鏈結庫,但它建立出來返回的是某個 方法的指標 不需要標頭檔案 而qpluginloader建立返回的是 物件的指標 物件中有哪些方法可呼叫,就要標頭檔案說了,所以上面的例子中,需要提供乙個介面標頭檔案 昨天乙個同事說要把乙個類做成dll的形式,但這個類不是從qwidg...