Skip to content

开始使用

Vajra Sheng edited this page Jan 5, 2021 · 6 revisions

开始使用

一、简述

使用有赞 H5版 SDK 可以将有赞整个电商交易的页面嵌入到开发者自身 App 内,可实现静默登录,跳转支付等功能,形成交易闭环。

H5版SDK基于 WebView 将有赞提供的 Html5 页面嵌入到 App 中。

二、快速体验

开发者通过 demo 来快速了解 SDK 的使用, 点击下载demo.

三、运行环境

• iOS 8.0 或更高.
• Xcode 9.0 或更高版本(建议使用最新版本)

四、接入

详细的接入指南请查看:

五、使用

有赞H5版SDK依托于YZWebView来进行页面展示. 类似 UIWebView, 传入商城页面地址,就可以进行完整的商品展示购买流程。具体可参考DEMO。

初始化 SDK

使用 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: 代理方法,YZNoticeresponse 会包含分享需要的各种信息。具体可参考[YZNotice 详解] https://github.com/youzan/YouzanMobileSDK-iOS/wiki/YZNotice-%E8%AF%A6%E8%A7%A3

并不是有赞的所有可见页面都能触发分享. 没有回调则代表该页面不可分享。

日志开关

SDK 提供了日志功能,默认日志为关闭状态. 开发者可以通过 YZConfig 中的设置打开日志开关.

@property (nonatomic, assign) BOOL enableLog; /**< 是否开启控制台日志输出,默认为NO。仅在 DEBUG 模式下有效*/

六、常见问题

https://github.com/youzan/YouzanMobileSDK-iOS/wiki/FAQ

七、API 文档

http://cocoadocs.org/docsets/YZAppSDK