微信未驗證應用(微信openSDK1.8.6的集成)

可能最近有的朋友發現了某些App分享出去的內容在微信內顯示未驗證應用.但是不是每個版本的微信都這樣.

iOS接入指南

在微信7.0.7(iOS 12-13)以及以上版本的分享可能會出現"未驗證應用"(目前看來是iOS12-13有這個特性)

這個主要是由於安全性考慮,微信將scheme跳轉換成Universal Links(這個經過我的測試發現不是全量的,在iOS12-13上是這樣)

在這裏插入圖片描述

注意的點

info.plist文件中添加LSApplicationQueriesSchemes(Array).以及添加兩個元素weixin weixinULAPI.

舊方案(或者說是降級)響應的方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options;
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

本次新增需要的方法

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler;

集成的時候可能有的坑

universalLink怎麼填.

這裏分兩塊,第一塊是工程內的.比如SDKSample的Associated Domains內的是help.wechat.com.

applinks:help.wechat.com

微信SDKDemo的apple-app-site-association文件

這個文件需要放到你填寫的網址的根路徑下,就比如這個demo需要放在

https://help.wechat.com/apple-app-site-association

下或者是

https://help.wechat.com/.well-known/apple-app-site-association

並且需要注意的是這個文件不能有後綴名.

這個文件的請求時機是App安裝時,系統自動去Associated Domains裏面填寫的內容去請求的.所以要測試的時候可以刪除調再裝App即可.

/// details內有很多,但是我之關注sdksample這個
{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "8P7343TG54.com.tencent.wc.xin.SDKSample",
                "paths": [
                    "/sdksample/*"
                ]
            }
        ]
    }
}

工程內的註冊代碼

//向微信註冊
[WXApi registerApp:@"wxd930ea5d5a258f4f" universalLink:@"https://help.wechat.com/sdksample/"];

那麼這裏填什麼呢
在這裏插入圖片描述
經過我的測試.Xcode內[WXApi registerApp:@"wxd930ea5d5a258f4f" universalLink:@"https://help.wechat.com/sdksample/"];的這個URL需要和微信開放平臺填寫的universalLink相同(微信的要求是https開頭,/結尾)

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
	if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
		NSURL *webpageURL = userActivity.webpageURL;
        NSString *absoluteString = webpageURL.absoluteString;
        if ([absoluteString containsString:@"wxd930ea5d5a258f4f"]) {/// 可以這樣判斷,或者是專門弄個微信的path給它用.
        	[WXAPI handleUniversal
        }
	}
}

分享時出現多次二次跳轉
在這裏插入圖片描述

登錄時出現多次確認彈窗
在這裏插入圖片描述

如果沒有上面的情況,但是分享出去還是顯示未驗證應用,可能是因爲沒刷新.可能需要等一天.詳情點這.

關於上架被拒

微信OpenSDk更新說明

我們可以發現

SDK1.8.6.2

修改包含"UIWebView"字符的類名


SDK1.8.6.1

UIWebview切換成WKWebview
支持Universal Link拉起微信以及返回App
移除MTA庫

而蘋果2020年已經不允許新上架的包包含UIWebView功能,而且到2020年12月份,舊包提交更新也不允許有UIWebView,所以建議大家使用1.8.6.2以及以上版本(這個是包含了UIWebView字符都不行…這個已經在我一朋友公司的新項目裏頭得到了驗證23333)

關於左下角圖片

在這裏插入圖片描述

這個圖片是微信開放平臺上面App的圖片(以前貌似沒這塊兒),這個需要注意(PS:吐個槽,我已經看到幾款App的圖片是亂放的了…)

顯示"正在連接"

這裏是微信開放平臺官方解釋

自檢函數全通過還是顯示未驗證應用

這個可能是微信那邊的問題,因爲他們這個不是實時更新的.詳情見iOS應用出現未驗證應用的問題排查.

吐槽

最後吐槽一下微信開放平臺,找個東西都不好找.寫文檔的人也沒有把case寫全,各種小坑還得自己去試.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章