Skip to content

接入指南7.x

Vajra Sheng edited this page Dec 7, 2020 · 4 revisions

接入方式

接入方式没有变动,与之前6.x相同,详见接入指南6.x

安全码校验

从7.0.0开始,SDK添加安全码校验功能,未通过校验的App将无法正常打开WebView进行页面渲染,且控制台会有如下报错日志打印:

❌❌❌ App开店SDK ======> clientID 未通过校验,请更新后重试!!!

解决方案

开发者需要前往有赞云开发者控制台新增App安全码配置,然后在初始化YZConfig配置类初始化时传入clientIdappKey,初始化方法调整如下:

/**
 初始化并返回一个配置。

 @param clientId 从有赞云申请的 client_id
 @param appKey 从有赞云申请的 appKey
 @return 一个配置。
 */
- (instancetype)initWithClientId:(NSString *)clientId andAppKey:(NSString *)appKey NS_DESIGNATED_INITIALIZER;

示例代码如下:

// 初始化SDK
YZConfig *config = [[YZConfig alloc] initWithClientId:CLIENT_ID andAppKey:APPKEY];
[YZSDK.shared initializeSDKWithConfig:config];

弱网校验失败逻辑处理

出现弱网或者其他网络原因导致安全码校验失败时,在初始化YZWebView的时候会返回nil,开发者可以针对这种情况做一些兜底处理,例如采用系统的WKWebView进行H5的渲染,避免出现不可控的情况。 此外,针对安全码校验成功或失败,7.0.6版本提供了成功或失败的回调抛出,且增加了发起重试校验的逻辑。 在YZSDKDelegate中可以针对成功或失败进行处理:

@protocol YZSDKDelegate <NSObject>

@optional
/// SDK安全校验成功或失败通知
- (void)yzsdkSecurityCheckSucceed:(YZSDK *)sdk;
- (void)yzsdkSecurityCheckFaild:(YZSDK *)sdk;

@end

YZSDK中可以重新发起校验:

/// 重试安全校验
- (void)securityCheck;

默认加载loading动画

7.0.0以后给WebView添加了native的默认加载动画,从开始请求持续到最终渲染完成。支持开发者关闭及设置自定义属性,可自行在YZConfig对象中进行配置。

/**
 SDK 配置类,包含对 SDK 的所有配置。
 */
@interface YZConfig : NSObject

@property (nonatomic, assign) BOOL disableDefaultLoading; /** 是否关闭默认加载动画,默认为NO */
@property (nonatomic, strong) NSArray *customerLoadingImages; /** 默认加载动画替换,传入动图所有帧图片数组,建议 100*100 */
@property (nonatomic, assign) NSTimeInterval customerLoadingImagesInteval; /** 加载动画时间间隔调整,默认0.35s每帧 */

@end

示例代码如下:

YZConfig *config = [[YZConfig alloc] initWithClientId:CLIENT_ID andAppKey:APPKEY];
config.disableDefaultLoading = YES;
config.customerLoadingImages = @[[UIImage imageNamed:@"test1"], [UIImage imageNamed:@"test2"]];
config.customerLoadingImagesInteval = 0.35;
[YZSDK.shared initializeSDKWithConfig:config];