-
Notifications
You must be signed in to change notification settings - Fork 16
FAQ
请参考接入指南,配置 app scheme.
首先确认用户设备是否安装相应客户端,其次确认 shouldStartLoadWithRequest 里是否拦截微信/支付宝的scheme,最后确认工程是否加了微信/支付宝scheme白名单。
5.x以上版本全部走https
4.iOS SDK 调用注册接口报错 [__NSDictionaryM addYZObject:forKey:]: unrecognized selector sent to instance xxxxxxxxxxxxxx
需要在Other Linker Flags
里加上-ObjC
。
1.不要用unsuggest去处理登录,这个类只限于demo使用
2.登录需要你们自行代码实现,按文档操作https://www.youzanyun.com/docs/guide/appsdk/683
在设置有赞的UA之前,先设置下APP自己的UA,然后测试是否影响业务流程
1.是否影响有赞的流程,有赞页面能正确请求登陆就不影响有赞流程
2.是否影响APP自身的流程,要自行测试逻辑
包含YZWebView的整体页面做好SafeArea适配即可,示例代码如下:
CGRect originFrame = self.webView.frame;
if (@available(iOS 11.0, *)) {
CGFloat bottom = [[[[UIApplication sharedApplication] delegate] window] safeAreaInsets].bottom;
if (bottom > 0) {
// iPhone X Series
self.webView.frame = CGRectMake(originFrame.origin.x, originFrame.origin.y, originFrame.size.width, originFrame.size.height - bottom);
}
}
两点原因。
- 我们开启了 BitCode.
- 库中的二进制文件包含了 armv7, arm64, x86_64 架构。
第一点有助于发往 App Store 的安装包优化和瘦身。但是也导致您下载到的 framework 包大小翻倍。(放心,用户真正安装的时候,包大小是非常小的。) 详情可以了解一下这里: https://github.com/realm/realm-cocoa/issues/4450
第二点是为了方便您导入和开发,我们将四种架构的二进制合并在一个文件中。真正打包 ipa 上传 app store 的时候,Xcode 会帮我们去掉不需要的 x86_64 架构(模拟器)的二进制。用户真正下载使用您 app 的时候,app store 只会分发对应架构的机型的安装包。
access_token 的有效期为 7 天。在有效期内,SDK 会自动延长有效期。当用户超过 7 天没有访问有赞相关的内容,会导致 access_token 过期。
access_token 过期后,通过监听 YouzanNotice
中的 YouzanNoticeLogin
,前往你的后台服务器获取最新的 access_token 并同步给 YZSDK 即可刷新 access_token 的有效期。
出现了Library not loaded错误怎么办?
**dyld: Library not loaded: @rpath/YZBaseSDK.framework/YZBaseSDK**
**Reason: image not found**
- 检查 embedded binaries 是否已经添加了 YZSDKCore.framework 、YZBaseSDK.framework 或者
- 使用 Cocoapods 安装 SDK.
如果在crash收集服务中看到 gpus_ReturnNotPermittedKillClient
相关的 crash 报告,这是由于系统的机制引起的,可以参考以下讨论解决:
- https://forums.developer.apple.com/thread/30896
- https://github.com/mapbox/mapbox-gl-native/issues/1460
- http://www.jianshu.com/p/1db77065828b
- https://developer.apple.com/library/content/qa/qa1766/_index.html
- http://www.cocoachina.com/bbs/read.php?tid-1703988.html
那是因为你的电脑本机的 pod repo 没有更新。运行 pod repo update
即可。
参见: https://stackoverflow.com/questions/13860401/ignoring-nsurlerrordomain-error-999-does-not-work-in-uiwebview http://www.xsffmy.com/p/3d9ba7e6d42f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation https://www.jianshu.com/p/cbd866e59db0
i386 架构用于 iPhone 5 及以下模拟器。目前的环境中,这类机器已经非常少,如真的有兼容性测试的需要,用真机测试方能更好地保证正确兼容。为了缩小体积,我们的 framework 包不包含 i386 架构支持。 使用 iPhone 5s 及以上的模拟器运行即可。
点击分享按钮后,SDK 会将页面相关信息返回到应用中。应用开发者需要自行实现分享的 UI。 监听一下消息即可获取分享相关信息:
- (void)webView:(YZWebView *)webView didReceiveNotice:(YZNotice *)notice
{
switch (notice.type) {
case YZNoticeTypeShare: // 收到分享的回调数据
{
[self alertShareData:notice.response];
break;
}
}
见 https://github.com/youzan/YouzanMobileSDK-iOS/wiki/%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%976.x
可以通过 js 获取 document.title
- (void)webViewDidFinishLoad:(id<YZWebView>)webView {
[webView evaluateJavaScript:@"document.title"
completionHandler:^(id _Nullable response, NSError * _Nullable error) {
self.navigationItem.title = response;
NSLog(@"TITLELLL: %@",response);
}];
}
iOS系统默认支持H5 标签拍照、拍视频或者选取照片或视频,但是需要在宿主App中注意对应权限点说明的文案设置,否则会出现闪退。
- 相册 NSPhotoLibraryUsageDescription
- 相机 NSCameraUsageDescription
- 麦克风 NSMicrophoneUsageDescription