微信着手封堵 Universal Link

以前寫了一篇文章Universal Link 前端部署採坑記,當時還信誓旦旦的說(仔細看了一眼,我當初說話還加了個括號,還好沒立flag)前端

Universal Link目前尚未基於iOS的UI/WKWebView的應用進行攔截,因此目前看仍是能突破微信/手百的封鎖。(之後,很差說啊~)ios

因而微信的這個屠刀終於揮了下來╮(╯_╰)╭git

業務上線Universal Link 之前就有坑

作前端最頭疼的就是瀏覽器適配,此次在Universal Link上也同樣體現了痛苦。github

我原本認爲,Universal Link徹底是走的系統控制,App應該是沒法干預的,但在最初上線的時候就發現UC瀏覽器QQ瀏覽器(非手機QQ)無效,我曾經天真的想這倆瀏覽器是否是由於本身作了內核不用系統WebView因此能夠這樣吧,因而乎沒刨根問底,這事情就沒細究web

封禁方案

早上小夥伴給我說微信封殺咱們的Universal Link了,我嚇了一跳以爲不可能,還覺得是小夥伴他點過什麼返回原App被蘋果策略屏蔽了,直到親自試了一下才發現,臥槽!是真的!macos

在試一下知乎/今日頭條2款App,也廢了╮(╯_╰)╭看來真是下手了這究竟是怎麼作到的瀏覽器

小夥伴給我貼了個stackoverflow的連接bash

Prevent universal links from opening in WKWebView/UIWebView 微信

看到裏面有一個回答是這麼說明的ide

sourcecode for WebKit:

static const WKNavigationActionPolicy WK_API_AVAILABLE(macosx(10.11), ios(9.0)) _WKNavigationActionPolicyAllowWithoutTryingAppLink = (WKNavigationActionPolicy)(WKNavigationActionPolicyAllow + 2);

if you are using WKWebView, just use WKNavigationActionPolicyAllow + 2 instead of WKNavigationActionPolicyAllow
複製代碼

好麼~WebKit源碼其實本就準備了不觸發UniversalLink的控制代碼

_WKNavigationActionPolicyAllowWithoutTryingAppLink

只不過這個枚舉值是私有的並無對外暴露,但你會發現這個值等於WKNavigationActionPolicyAllow這個系統公開枚舉值+2,因而乎封掉Universal Link的方法呼之欲出了。若是你在使用WKWebView,嘗試在decidePolicy的時候返回這個枚舉值!

嘗試寫個demo App,使用WKWebView,而後實現webView:decidePolicyForNavigationAction:decisionHandler:這個delegate,還拿咱們的線上universal link頁面測試,果真,返回+2了之後 Universal Link是被完全封堵了

//就是這麼的簡單粗暴
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    //返回+2的枚舉值
    decisionHandler(WKNavigationActionPolicyAllow + 2);
}
複製代碼

微博上的@Vong_HUST 還跟進逆向了一下

騰訊系的均可以打開,應該是設置了白名單。dump 了一下頭文件,也確實發現了一些相似 isCloseUniversallink 的方法,感受能夠投訴到蘋果那邊了

嘿!看到沒?還isCloseUniversallink,這充分說明這TM仍是個遠程開關,隨開隨關可控,我說爲啥命名微信沒發版本,咋就跪了

作用戶流量的一條路又廢了

咱們從自身業務出發,確實想從各類別人的App,別人的瀏覽器裏,往本身App跳,往本身App導流

但換位思考一下若是你是瀏覽器APP,你是微信,你確定不但願用戶離開微信進入別的App,所以最先Schema式跳轉是被各大瀏覽器老早就封殺的

最先還寄但願於Universal Link是系統機制,或許封殺不到,然鵝......

讓咱們猜猜,手百的Universal Link,還能活多久?

相關文章
相關標籤/搜索