客户端SDK常见问题

更新时间:2015/11/19 访问次数:146205

1.问:什么是安全图片。

答:使用应用的appkey和其他相关信息(android还需要提供keystore签名的apk文件)一起加密生成的1像素点的加密图片。
使用时请将图片改名为yw_1222.jpg,只需根据iOS和android放在对应的目录下,iOS:只要把安全图片放到工程目录底下即可; Android:需要把安全图片放到/res/drawable下。
使用的时候,android客户端SDK会校验安全图片中加密的keystore和当前程序中的keystore是否一致,如果不一致初始化会失败。
iOS客户端SDK会校验校验安全图片中加密的appkey信息和当前程序中的URL Types里面填写的appkey应用是否一致,如果不一致也会报错。 

2.问:Android SDK初始化失败报错  INIT_EXCEPTION,安全图片生成了,为什么还是初始化失败.

答: Android 应用开发过程中生成的安全图片需要注意:需要使用工程bin目录下的apk文件来生成安全图片,因为eclipse中run  application的时候用的是默认的keystore生成的apk,而这个apk就在bin目录下;
 如果这个时候开发者自己又创建了一个keystore,并且用这个新的keystore生成apk去获取安全图片的话,
那么就会出现,10016  INIT_EXCEPTION 错误,安全图片不匹配的报错,因为在run application时eclipse会拿默认的keystore和安全图片来做对比,那就对不上了。 

3.问:客户端什么方法打开商品成交是有淘客佣金。

答:使用 showTaokeItemDetailByOpenItemId 或 showTaokeItemDetailByItemId 方法,并且传入应用appkey对应的pid,pid获取方法 。

消费者在打开的商品详情页中直接进行购买,交易成功后就能获取淘客佣金了,具体查看可以去阿里妈妈后台

4.问:android的登录每次都返回登录取消,看logcat有如下错误:

答:需要把SDK中的AndroidManifest.xml文件内容合并(主要是application和uses-permission标签下的内容)到项目文件中。 

5.问: 客户端SDK中,showitemdetailbyopenitemid 传入的openiid,无法正常调用唤起商品详情页。

答:首先,查看showitemdetail接口相关的入参都已经按照SDK文档要求的正确传入;
其次,请检查传入的itemid是否为openiid(混淆商品ID), 不能直接传入numiid(明文商品ID);
最后,确认获取这个openiid 的appkey 和生成安全图片的appkey 是否一致,必须要一致才能唤起商品详情页的。 

6.问:客户端SDK,出现报错,ILLEGAL_PARAM  code=10013  什么原因.

答:在调用showitemdetailbyopenitemid接口的时候,传入的openiid如果不是安全图片对应的appkey生成的就会报错这个无效参数的错误。要注意每个appkey生成混淆商品openiid都是唯一的,openiid是要和安全图片中的appkey匹配的。

7.问:客户端SDK唤起淘宝登录,出现“ 授权失败,请稍后重试” 或者出现系统繁忙错误。

答:首先检查一下应用appkey情况,确认使用的百川类型的应用的appkey,只有百川appkey可以使用客户端SDK;

其次,在 应用管理后台 检查appkey的基本信息,应用图标是否正常填写,如果没有填写,登录也会失败。

最后,检查一下应用是否上线,授权管理里面是否有数量限制,

没有申请上线的应用,授权用户只有50个人,超过50个的用户也会授权失败。申请上线

8.问:客户端SDK中,获取不到登录后的回调,没有调用TaeSDK.showLogin的onFailure或onSuccess方法。

答:onActivityResult中调用CallbackContext.onActivityResult 

9.问:客户端SDK中唤起商品详情页时为什么会直接onFailure。

答:客户端SDK存放的路径不能含有中文,如果有中文的话可能是造成乱码,导致SDK内容无法同步到项目中。 

10.问:登录手淘,跳转时提示 返回来源应用错误,为什么?

答:一般都是由于开发者没有注册URL跳转的scheme ,URL Schemes填写为 tbopen+appkey,例如tbopen611265。

请参考文档进行设置:点击查看 。 

11.问:iOS bundle获取方式

方法一
通过代码获取,代码如下所示:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

方法二
Xcode切换到General标签,查看Bundle Identifier,如下图所示:

 

12.问:iOS里使用H5登录能正常执行callback,用手机淘宝登录无法执行callback

答:

在系统的handleOpenURL处需要调用TaeSDK监听手淘登录授权后的回跳

[[TaeSDK sharedInstance] handleOpenURL:url]

 

TaeSDK会监听回跳的URL,调用开发者之前传入的loginSuccessCallback或loginFailedCallback

示例截图:

 

13.问:iOS里使用手机淘宝登录后,出现crash现象

答:

1、 检查下是否实现了UIApplicationDelegate。并且设置Window属性可见(一般是系统默认设置的),TAESDK需要用到Window。

@property (strong, nonatomic) UIWindow *window;

示例截图:

2、  为工程增加-ObjC属性

 

14.问:客户端SDK唤起购物车,showCart没有反映 ?

答:1.Sdk中的AndroidManifest.xml文件内容要和开发者项目中的该文件合并;

       2.SDK是否使用是最新版的,特别是个别资源文件不要遗漏更新。 

15.问:SDK出现报错权限不足?

答:需要申请相关权限才能使用,参考文档:点击查看

 

16.问:集成IOS SDK 运行出现如下报错,

[NSConcreteMutableData gzipDeflate]: unrecognized selector sent to instance 0x7ff21c91c3a0 

 

答:原因是由于没有配置编译参数  -ObjC (一定要注意大小写!),  如图:

17.问:Android如何修改详情页的左上角返回按钮样式,包括其他类似的样式

可以修改layout的titilebar里的回退按钮的backgroud,如下图:

18.最新版本的SDK(1.7)安全图片和老版本SDK不兼容

1.7版本SDK的安全图片和老版本的安全图片是不兼容的,需要替换一下。

 

 

 

19.怎么去掉页面的title和topbar

去掉title:修改sdk中的AndroidManifest.xml文件的activity的theme设置为notitilebar就可以了,需要哪个activity不显示,去掉哪个就可以

去掉topbar:直接修改sdk的\res\layout目录下的com_taobao_tae_sdk_web_view_title_bar.xml文件的RelativeLayout中的layout_height为0dp就可以

如下图所示:

20.怎么设置商品详情页跳转类型。

商品详情服务 (ItemService) 支持指定商品详情页面类型, 目前支持 :
百川 H5 页面 TradeConstants.BAICHUAN_H5_VIEW
淘宝 H5 页面 TradeConstants.TAOBAO_H5_VIEW
唤起手淘详情页 TradeConstants.TAOBAO_NATIVE_VIEW 

Map<String, String> exParams = new HashMap<String, String>();
exParams.put(TradeConstants.ITEM_DETAIL_VIEW_TYPE, TradeConstants.BAICHUAN_H5_VIEW);
ItemService itemService = AlibabaSDK.getService(ItemService.class);
itemService.showItemDetailByOpenItemId(this, new TradeProcessCallback() {

@Override
public void onPaySuccess(TradeResult tradeResult) {
}

@Override
public void onFailure(int code, String msg) {
}
}, null, "AAGMb-fzAAgOrLtFIoJ_X7yh", ItemType.TMALL, exParams);

 

21.错误编码 = 704  ,错误消息 =  APK 中找不到对应的 securityguard***.so 文件或者 so 文件载入出错

答:1. 如果使用项目依赖方式使用 SDK,请检查所依赖的 SDK 项目中 libs 目录下 securityguard***.jar 和 armeabi/armeabi-v7a/x86 下 securityguard***.so 是否存在,大小正常并版本是否一致,如果是将 SDK 拷贝至当前开发应用中,请在当前应用中检查。如文件存在而生成的 apk 中不存在,请检查 IDE 设置,例如 Android Studio 项目的 build.gradle 中 jniLibs.srcDirs。

2.因为 Android 部分版本系统中载入不同架构原生库 (so 文件) 的限制,请确保项目运行所需的原生库文件在当前手机 CPU 对应架构目录下都存在。例如,安全模块暂时未提供 arm64 架构的原生库,若当前 apk 依赖的其他组件包含 arm64 原生库,会导致载入错误,解决方法是移除依赖组件中相关原生库,确保最终 apk 中不存在 arm64-v8a 。

 

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部