Skip to content

接入指南5.x

Sheng Pan edited this page Dec 15, 2017 · 2 revisions

一、接入要求

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

二、接入流程

1.引入 framework

基础版(basic) 需要把 YZBase.frameworkYZBaseRes.bundle 加入到工程

2.设置 build setting

在 XCode 的 build setting 中,为 other link flags 添加 -ObjC-all_load-lc++

3.设置 Info.plist 里面的值

  • 设置Privacy (用户的留言可能需要用户选择图片) privacy
  • 设置 Schemes (付款需要用户打开微信和支付宝) schemes

4.设置你的 scheme(微信支付完成后跳转回App)

在 info.plist 中配置你的 app 的 scheme.

scheme

然后通过 [YZSDK setScheme:] 将 scheme 传递给 SDK.

 [YZSDK setScheme:@"yzsdkdemo"]; // 改成你的 app scheme

接下来在 UIWebView 的对应代理方法中调用 SDK 的对应方法

- (void)webViewDidStartLoad:(UIWebView *)webView {
	// 告知 sdk 一个新的请求开始加载了
    [YZSDK webViewDidStartLoad:webView];
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
	// 告知 sdk 一个请求失败了
    [YZSDK webView:webView didFailLoadWithError:error];
}
// webview 加载完成
- (void)webViewDidFinishLoad:(UIWebView *)webView {
	// 告知 sdk 页面加载完成
    [YZSDK webViewDidFinishLoad:webView];
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

    // 首先用 YZSDK 过滤无关的请求
    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;
}

只有配置了 Scheme, 并正确调用 SDK 的对应方法,微信支付完成后才能正确跳转回到你的 app 中。