注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > YunOS开放平台

YunOS SDK使用说明

更新时间:2016/02/26 访问次数:36542

集成SDK 

1YunOS SDK接入需要的准备工作

1) 入驻YunOS开放平台,创建Native APP应用。

2) 选择需要的SDK,打包下载。

注意事项:下载的SDK中,有一张安全图片文件yw_1222.jpg ,在指定路径 res/drawable 下,请勿修改和移动,res目录下的东西全部放到工程对应目录下。

2SDK加入工程

1)将下载的所有文件拷贝到自己项目工程对应的文件夹。

2)合并SDK中的清单文件

SDK初始化 

使用AlibabaSDK.asyncInit方法来初始化SDK,建议将AlibabaSDK.asyncInit方法的调用放在ApplictiononCreate中,在应用启动时就初始化。(SDK中的所有方法都要在主线程中调用

第二个参数为InitResultCallback,可以使用此回调判断AlibabaSDK是否初始化成功,如果初始化失败,大部分情况是签名认证失败,你的认证安全图片信息与keystore不一致。

 

AlibabaSDK.asyncInit(this, new InitResultCallback() {
            @Override
             public void onSuccess() {
                 Toast.makeText(MainActivity.this, "初始化成功", Toast.LENGTH_SHORT).show();
             }
             @Override
             public void onFailure(int code, String message) {
                 Toast.makeText(MainActivity.this, "初始化异常", Toast.LENGTH_SHORT).show();
             }
    });

 

功能组件

YunOS基础包

1) YunOS免登授权组件YunosAuthService 使用说明: //open.yunos.com/doc/detail?documentId=103430

YunOS工具包

1) 线程池组件 ExecutorService

2) 数据打点组件 UserTrackerService

3) 淘宝开放平台接口组件 TopService

4) H5页面组件 H5WebPageService

 

YunOS工具包组件

线程池

 

 

public interface ExecutorService {

    public void postHandlerTask(Runnable runnable);

    public void postUITask(Runnable runnable);

    public void postTask(Runnable runnable);

    public Looper getDefaultLooper();

}

数据打点

 

public interface UserTrackerService {

    /**

     * @param label自定义事件名称

     * @param page事件对应的页面

     */

    public void sendCustomHit(String label, final Activity activity);

    /**

     * @param label自定义事件名称

     * @param page事件对应的页面

     * @param prop事件所携带的属性

     */

    public void sendCustomHit(String label, String page, Map<String, String> prop);

    /**

     * @param label自定义事件名称

     * @param time事件从开始到完成消耗的时长

     * @param page事件对应的页面

     * @param prop事件所携带的属性

     */

    public void sendCustomHit(String label, long time, String page, Map<String, String> prop);

    /**

     * @param label 自定义事件名称

     * @param eventId 事件 Id

     * @param action 行为名称

     * @param time 事件从开始到完成消耗的时长

     * @param page 事件对应的页面

     * @param prpos

     */

    public void sendCustomHit(String label, int eventId, String action, long time, String page, Map<String, String> prpos);

 

淘宝开放平台接口

import java.util.Map;

public interface TopService

{

  public Result<String> invoke(Map<String, String> paramMap);

}

示例:

public void getTaobaoTime(final Activity activity,

                     final ResultCallback<Result<String>> callback) {

              new Thread(new Runnable() {

                     public void run() {

                            TopService topService = AlibabaSDK.getService(TopService.class);

                            Map<String, String> parameters = new HashMap<String, String>();

                            parameters.put(TopService.METHOD_KEY, "taobao.time.get");

                            parameters.put("format", "json");

                            try {

                                   final Result<String> result = topService.invoke(parameters);

                                   activity.runOnUiThread(new Runnable() {

                                          public void run() {

                                                 if (result.code != ResultCode.SUCCESS.code) {

                                                        callback.onFailure(result.code, result.message);

                                                 } else {

                                                        callback.onSuccess(result);

                                                 }

                                          }

                                   });

                            } catch (final Exception e) {

                                   activity.runOnUiThread(new Runnable() {

                                          public void run() {

                                                 callback.onFailure(

                                                               ResultCode.HTTP_REQUEST_EXCEPTION.code,

                                                               e.getMessage());

                                          }

                                   });

                            }

                     }

              }).start();

}

H5页面

 

public interface H5WebPageService {

    public void showPage(Activity activity, FailureCallback callback, String url);

    public void showPage(Activity activity, FailureCallback callback, UiSettings settings, String url);

}

混淆

-keepattributes Signature

-keep class sun.misc.Unsafe { *; }

-keep class com.taobao.** {*;}

-keep class com.alibaba.** {*;}

-keep class com.alipay.** {*;}

-dontwarn com.taobao.**

-dontwarn com.alibaba.**

-dontwarn com.alipay.**

-keep class com.ut.** {*;}

-dontwarn com.ut.**

-keep class com.ta.** {*;}

-dontwarn com.ta.**

 常见问题

1)  初始化不成功开发者经常遇到的情况

1、生成的安全图片和程序的keystore是否一致,这个问题最常见,最好是重新生成apk,新打包SDK试试。

2SDK包不完整。比如:so文件缺失,清单文件不完整,详细检查是相关文件是否都导入到项目中。

3、网络异常。比如:手机没有联网,模拟器网络问题,设置了网络代理等等。

2)  如果你用 Studio在运行中遇到Error:Execution failed for task ':app:dexDebug'.
> ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_60\bin\java.exe'' finished with non-zero exit value 2
类似错误,可以删掉引用SDK中的Support-v4.jar后重新运行

 

常见错误code

参考:http://baichuan.taobao.com/portal/doc?articleId=406

 

FAQ

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