Skip to content

升级到7.0.0以后API功能增加

pepperer edited this page Aug 7, 2023 · 17 revisions

在application初始化发生改变

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // appKey可以前往<a href="https://doc.youzanyun.com/doc#/content/35675/38923">获取安全码</a>
        YouzanSDK.init(this, "client_id","appKey", new YouZanSDKX5Adapter());
         //为了开发者在使用调试期间更快使用体验,可以将其设置成开发模式则不进行安全码校验
        //   YouzanSDK.isDebug(false)
    }
}

自7.0.0以后,增加默认加载页面loading,并且支持自定义配置。

//调用YouzanBrowser的needLoading方法,开启默认loading弹框
yzBrowser?.loadUrl(loadUrl())
yzBrowser?.needLoading(true)

YouzanBrowser提供自定义设置loading样式

    //YouzanBrowser 提供设置本地资源文件方法
    public void setLoadingImage(final int imageResoure) {
        this.imageRes = imageResoure;
    }
    //YouzanBrowser 提供设置 请求资源文件
    public void setLoadingImage(final String imageResoure) {
        this.imageUrl = imageResoure;
    }
    //YouzanBrowser 提供设置 自定义loadingview
    public void setLoadingView(View loadingView) {
        this.loadingView = loadingView;
    }

使用

yzBrowser?.needLoading(true)
//yzBrowser?.setLoadingImage(R.mipmap.loading)
//yzBrowser?.setLoadingImage("http://xxxx.png")

自basic7.0.2和x57.0.6以后,增加自定义处理校验失败逻辑

        //校验失败,YouzanSDK.isReady()会返回false,可以通过webview处理
        if (!YouzanSDK.isReady()){
            Log.e("YZSDK","--------------------")
            Toast.makeText(context!!,"验证失败,再次重试",Toast.LENGTH_SHORT).show()
            YouzanSDK.init(context!!, QimaApp.CLIENT_ID, QimaApp.APP_KEY, YouZanSDKX5Adapter())
            yzBrowser?.postDelayed({
                Toast.makeText(context!!,"开始重试",Toast.LENGTH_SHORT).show()
                yzBrowser?.reloadWebView(context!!)
                initYouzanBrower()
            },2000)
        }

H5长按图片保存监听 是否必须实现:否 触发条件:长按图片保存诗

view.setSaveImageListener(new SaveImageListener() {
            @Override
            public boolean onSaveImage(WebView.HitTestResult result) throws ActivityNotFoundException {
                // TODO 接管逻辑
                Toast.makeText(view.getContext(),"接管",Toast.LENGTH_SHORT).show();
                return true;
//                //TODO  权限申请逻辑
//                return false;
            }
        });

说明:return true;表示接管逻辑,不再走appsdk默认逻辑,需要自己实现 return false;表示可以继续走appsdk默认逻辑

basic和x5 在7.1.0版本增加 登陆方法使用: 参数对应以前文档:https://doc.youzanyun.com/doc#/content/35675/36984

    fun queryToken(context: Context, openUserId: String?) {
        val userInfo = TreeMap<String, String>()
//        userInfo["avatar"] = ""
        userInfo["clientId"] = ""
//        userInfo["extra"] = ""
//        userInfo["nickName"] = "5016c8ba77258837d6"
        userInfo["openId"] = openUserId!!
//        userInfo["sex"] = "1"
//        userInfo["telephone"] = openUserId
        YouzanSDK.yzlogin(userInfo,object : YzLoginCallback{
            override fun onSuccess(token: YouzanToken?) {
                 yzBrowser?.sync(token)
            }
            override fun onFail(p0: String?) {
            }

            @Override
            public void onFail(String message) {

            }
        });

basic和x5 在7.1.6版本优化 登陆方法使用: 参数对应以前文档:https://doc.youzanyun.com/doc#/content/35675/36984

 /**
     * 用户登陆
     * @param openUserId 必传,开发者自身系统的用户ID,是三方App帐号在有赞的唯一标示符,如更换将导致原用户数据丢失
     * @param avatar 必传,用户头像,建议传入https的url,如果不传入请使用 ""(空字符串)
     * @param extra  必传,用户额外参数,如果不传入请使用 ""(空字符串)
     * @param nickName 必传,用户昵称,如果不传入请使用 ""(空字符串)
     * @param gender 必传,性别 0(保密)1(男)2(女),如果不传入请使用 ""(空字符串)
     * @param yzLoginCallback 登陆完成后回调,登陆成功 YouzanToken 会返回有赞openId
     */
  YouzanSDK.yzlogin("17816122521","5016c8ba77258837d6","","5016c8ba77258837d6","1", new YzLoginCallback() {
            @Override
            public void onSuccess(YouzanToken data) {
                view.post(new Runnable() {
                    @Override
                    public void run() {
                      view.sync(data);
                    }
                });
            }

            @Override
            public void onFail(String message) {

            }
        });

   //调用AbsAuthEvent需要注册事件:
    client.subscribe(new AbsCheckAuthMobileEvent(){});
    //认证
    client.subscribe(new AbsAuthEvent() {});

注意: 上述参数如果不传入请使用 ""(空字符串), 传null接口有报错。