-
Notifications
You must be signed in to change notification settings - Fork 16
开始使用
使用有赞 H5版 SDK 可以将有赞整个电商交易的页面嵌入到开发者自身 App 内,可实现静默登录,跳转支付等功能,形成交易闭环。
H5版SDK
基于 WebView 将有赞提供的 Html5 页面嵌入到 App 中。
开发者通过 demo 来快速了解 SDK 的使用, 点击下载demo.
• iOS 8.0 或更高.
• Xcode 9.0 或更高版本(建议使用最新版本)
详细的接入指南请查看:
有赞H5版SDK
依托于YZWebView
来进行页面展示. 类似 UIWebView, 传入商城页面地址,就可以进行完整的商品展示购买流程。具体可参考DEMO。
使用 SDK 前需要先初始化。
// 生成一个配置对象
YZConfig *conf = [[YZConfig alloc] initWithClientId:CLIENT_ID];
conf.enableLog = NO; // 关闭 sdk 的 log 输出
conf.scheme = SCHEME; // 配置 scheme 以便微信支付完成后跳转
[YZSDK.shared initializeSDKWithConfig:conf]; // 使用配置初始化 SDK
使用 YZWebView 来展示商城界面
...
... // 初始化 YZWebView,纯代码或者Storybuard
self.webView.noticeDelegate = self; // 实现代理方法,监听有赞相关的通知
// 加载链接
[self.webView loadRequest:urlRequest];
当遇到需要登陆才可以访问的页面时,会触发下面的回调,此时去获取登录态信息,调用SDK的登录API。
详细的 Notice 文档请见 YZNotice 详解
#pragma mark - YZWebViewNoticeDelegate
- (void)webView:(YZWebView *)webView didReceiveNotice:(YZNotice *)notice
{
switch (notice.type) {
case YZNoticeTypeLogin: // 收到登陆请求
{
// 此时应调用SDK的登录API
break;
}
case YZNoticeTypeShare: // 收到分享的回调数据
{
// 在这里自定义分享操作
break;
}
case YZNoticeTypeReady: // Web页面已准备好,可以调用分享接口
{
// 这里可以启用分享按钮(如果有的话)
break;
}
default:
break;
}
}
通过调用SDK提供的登录API来实现有赞账号的登录,具体参数说明见方法注释。
/// 用户登录
/// @param openUserId 必传,开发者自身系统的用户ID,是三方App账号在有赞的唯一标识符,如更换将导致原用户数据丢失
/// @param avatar 非必传,用户头像,建议传https的url
/// @param extra 非必传,用户的额外信息
/// @param nickName 非必传,用户昵称
/// @param gender 非必传,性别 0(保密)、1(男)、2(女)
/// @param completion 登录完成回调,isSuccess 登录是否成功,yzOpenId 成功后返回的有赞openId
- (void)loginWithOpenUserId:(NSString *)openUserId
avatar:(NSString * _Nullable)avatar
extra:(NSString * _Nullable)extra
nickName:(NSString * _Nullable)nickName
gender:(NSInteger)gender
andCompletion:(YZSDKLoginCompletionHandler)completion;
在三方App内发生用户切换或用户退出的时, 为了避免出现客户信息混乱, 请务必执行如下代码登出有赞用户角色.
代码示例:
- (void)logout;
或
- (void)logoutWithCompletion:(YZSDKLogoutCompletionHandler)completion;
如需要获取页面的分享信息, 需要调用 YZWebView
的 -share
方法来触发分享事件:
- (void)share;
触发分享操作后, YZWebView
会异步调用 webView:didReceiveNotice:
代理方法,YZNotice
的 response
会包含分享需要的各种信息。具体可参考[YZNotice 详解] https://github.com/youzan/YouzanMobileSDK-iOS/wiki/YZNotice-%E8%AF%A6%E8%A7%A3 。
并不是有赞的所有可见页面都能触发分享. 没有回调则代表该页面不可分享。
SDK 提供了日志功能,默认日志为关闭状态. 开发者可以通过 YZConfig
中的设置打开日志开关.
@property (nonatomic, assign) BOOL enableLog; /**< 是否开启控制台日志输出,默认为NO。仅在 DEBUG 模式下有效*/