微信未验证应用(微信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
        }
	}
}

分享时出现多次二次跳转
在这里插入图片描述

登录时出现多次确认弹窗
在这里插入图片描述

如果没有上面的情况,但是分享出去还是显示未验证应用,可能是因为没刷新.可能需要等一天(经过两次测试,发现一般都是第二天10点以后刷新,刷新之后得重新分享一次才会将所有的未验证应用的状态刷新).详情点这.

关于上架被拒

微信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写全,各种小坑还得自己去试.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值