iOS之適配蘋果Universal Links 和升級友盟的QQ和微信分享艱難之路

b6xg.gif
  • 安逸的日子總是那么短暫,剛上完線,唏噓人生是那么短暫而又漫長,剛準備進入安逸圈,結果晴天霹靂
    WechatIMG120.png

    這特么是啥 ,我沒動啥代碼哇,瞬間感覺蛋蛋有微微的疼痛,經過測試只有新系統(iOS13.5)的微信才會出現這個
    YmDA.jpeg

    這肯定是友盟整什么幺蛾子了,打開文檔一看
    WechatIMG121.png

    瞬間明白了什么 ,我現在用的就是精簡版 去看下pod 果不其然
    WechatIMG122.png

    這時候嘴角揚起一絲絲微笑,這不是升級就完事了,事情沒你想的那么簡單
    q5p5.jpeg

    pod完事了,運行結果掉不起微信了,沒什么反應,控制臺也不報錯
    5xGg.jpeg

    行吧 不慌 再看看文檔

集成最新的微信和QQ的完整SDK,需要設置合法的Universal Links 這一句 ,然后思路就來了 面向百度開發

WechatIMG123.png

這原來是蘋果整的幺蛾子,打開第一個跟著做就行,一定要服務端配合
下面嗎給出知乎的配置格式(https://oia.zhihu.com/apple-app-site-association),我是參考這個格式,其他的也行

注意:如果你要分享到QQ,下面的格式一定要是/qq_conn/QQ互聯給的AppId/

QQ互聯文檔有說明,不然會一直效驗Universal Links失敗,然后你分享到QQ提示未驗證應用類的提示


9D49350E4EA7312A9BFEDFBDEEDA63F3.jpg

9EA067BC-BA23-40C3-8F85-527BB91DDAA5.png

A1095A83-8FB0-4502-804B-E808DD7D37E7.png

上面的圖片里面需要點擊效驗,驗證通過才能成功分享到QQ,提示報錯,是因為你的path路徑有問題,一定要按照QQ給的路徑去配(/qq_conn/QQ互聯給的AppId/)

{
  "applinks": {
    "apps": [],
    "details": {
      "AppId":"蘋果證書的TeamId.你的Bundle.Identifier"{
        "paths": [
          "/app/***/*",
          "/qq_conn/QQ互聯給的AppId/*"
        ]
      },
  "webcredentials": {
    "apps": [
      "蘋果證書的TeamId.你的Bundle.Identifier"
    ]
  },
  "activitycontinuation": {
    "apps": [
       "蘋果證書的TeamId.你的Bundle.Identifier"
    ]
  }
}
  • 配置成功驗證在Safari瀏覽器輸入(https://你的域名/你的路徑/)應該是這樣的,就表示你配置成功*
    1289056-eea1f1910ef67df2.jpg

    下面你去運行還是一樣的,下面分享集成友盟的坑
6M0yr.gif
  • 運行應該控制臺log下面的錯誤
 -canOpenURL: failed for URL: "weixinULAPI://" - error: "This app is not allowed to query for scheme weixinulapi"

干就完事了 打開info.plist 添加weixinULAPI


WechatIMG125.png

重要的事情說三遍

重要的事情說三遍

重要的事情說三遍

  • 紅色箭頭的順序不能寫反了我發現在先后順序也會掉不起來


    WechatIMG126.png
  • 看到這里你基本上可以成功掉起微信,很可能會在微信成功幾秒游,閃一下,那么不要慌,加上這段代碼,你就可以了

此處建議卸載APP,然后加上下面代碼后在重新運行

-(BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    if (![[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]) {
           // 其他SDK的回調
       }
    return true;
}
JBmqz.jpeg

基本上注意以上的,你就可以成功掉起微信分享

But

短時間目測無法去掉未驗證應用的帽子,微信開放平臺有說明:

420DBFE1ACEC1C86BC8A9BA4F33C04EC.jpg
7506136E4A69C0D9A42769E4433BC195.jpg

后續檢測到你的app有使用SDK的記錄,會去掉這個帽子,我到現在也沒去掉,可能是我們沒發版

q3Blp.jpeg

2020年06月9日上線,大多數用戶更新后,去掉了帽子 哈哈


WeChat44e63d2cd7ba1fb14c916852452a4cf6.png
b6xg.gif
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。