-
Notifications
You must be signed in to change notification settings - Fork 16
APPSDK 6.x 迁移指南
Sheng Pan edited this page Dec 18, 2017
·
6 revisions
正在使用 AppSDK 5.x 用户。
AppSDK 6.x 通过提供 YZWebView ,简化了 SDK 的使用和接入,并优化了 WebView 的加载速度。同时接口更清晰,更稳定。
用户可以选择整体迁移至 6.x,或以兼容的方式使用 6.x 版本的 SDK. 6.x 版本的 SDK 对 5.x 的接口做了兼容,用户只需导入 AppSDK 便可无缝升级。
❗️5.x 的兼容接口保留到2017年12月31日,之后不再维护,推荐用户尽快整体迁移至 6.x 版本。
请根据接入指南6.x进行接入,之后参考 Demo 使用更新你的代码。其关键点如下:
原始初始化方式:
[YZSDK setUpWithClientId:CLIENT_ID];
替换为新的初始化方式:
YZConfig *config = [[YZConfig alloc] initWithClientId:kClientID];
NSString* scheme = [[[NSBundle mainBundle].infoDictionary[@"CFBundleURLTypes"] firstObject][@"CFBundleURLSchemes"] firstObject];
config.scheme = scheme;
config.enableLog = YES;
[YZSDK.shared initializeSDKWithConfig:config];
YZWebView 的接口和 UIWebView 保持一致,用户只需替换类名即可。
老的监听方式:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
BOOL should = [YZSDK webView:webView shouldStartLoadWithRequest:request navigationType:navigationType];
if (!should) {
return NO;
}
NSURL *url = [request URL];
YZNotice *noticeFromYZ = [YZSDK noticeFromYouzanWithUrl:url];
if(noticeFromYZ.notice & YouzanNoticeLogin) {//登录
} else if(noticeFromYZ.notice & YouzanNoticeShare) {//分享
} else if(noticeFromYZ.notice & YouzanNoticeReady) {//有赞环境初始化成功,分享按钮可用
} else if (noticeFromYZ.notice & IsYouzanNotice) {
}
return YES;
}
替换为新的监听方式:
// 实现 YZWebViewDelegate 即可, YZWebView 会在适当的时机调用
- (void)webView:(YZWebView *)webView didReceiveNotice:(YZNotice *)notice
{
switch (notice.type) {
case YZNoticeTypeLogin: // 收到登陆请求
{
[self showLoginViewControllerIfNeeded];
break;
}
case YZNoticeTypeShare: // 收到分享的回调数据
{
[self alertShareData:notice.response];
break;
}
case YZNoticeTypeReady: // Web页面已准备好,可以调用分享接口
{
self.navigationItem.rightBarButtonItem.enabled = YES;
break;
}
default:
break;
}
}
原始分享调用方式:
[YZSDK shareActionWithUIWebView:self.webView];
切换为新的分享调用方式:
[self.webView share];
YZSDK 新增一个代理接口,需要接入才可启用页面加载加速能力。
YZSDK.shared.delegate = self;
- (void)yzsdk:(YZSDK *)sdk
needInitToken:(void (^)(NSString * _Nullable))callback
{
// 调用有赞云的初始化Token接口并返回 token. 见:https://www.youzanyun.com/docs/guide/3400/3466
// 注意,下面的代码只是做为演示,请不要使用 UnsuggestMethod。
[UnsuggestMethod loginWithOpenUid:[UserModel sharedManage].userId
completionBlock:^(NSDictionary *info) {
callback(info[@"access_token"]);
}];
}
请根据接入指南6.x进行接入即可。原有代码可以继续运行。您可以抽空进行整体迁移。
关键点:将 YZSDKCore 添加到 Embeded Frameworks 中。