AOne Android SDK接入文档 7、增加Sdk的初始化方法 在用户同意隐私协议后,进入登录页面,需要在Activity的OnCreate方法中获取Intent,并通过intent的getQueryParameter的方法,获取到授权回调回来的idtoken字段的值,这个值就是AoneId授权成功回来的token,传入SdkInit的入参,完成Sdk的初始化方法,步骤如下: 在登录页的onCreate方法中增加获取AOne网页授权回来的token的方法,如下所示: / 这个方法是Aone网页授权回调后,获取到SdkInit的所需要的token的方法 调用线程:主线程 / public void aoneAuthBack() { // 获取 Intent 中的数据 Intent intent getIntent(); if (intent ! null && Intent.ACTIONVIEW.equals(intent.getAction())) { Uri data intent.getData(); if (data ! null) { String idToken data.getQueryParameter("idtoken"); Log.i(TAG, "[AOne] idtoken:" + idToken); Map params new HashMap<>(); params.put(Const.INITPARAMS.AONEIDTOKEN, idToken); SdkInit(this,params); } else { Toast.makeText(MainActivity.this, getText(R.string.ushouldauthbywebfirst), Toast.LENGTHSHORT).show(); } } else { Toast.makeText(MainActivity.this, getText(R.string.ushouldauthbywebfirst), Toast.LENGTHSHORT).show(); } } 把这个token传入SdkInit方法中,注意这里有获取ip的行为,需要在用户同意隐私协议后才能调用。 初始化接口会回调你们一个 token , 需要拿着这个token 下次来初始化,如果在有效期内, 初始化成功, 会在返回给你们一个新的 token ,如果有效期过期, 会通过回调告诉你们有效期过期了, 重新走登录流程。 / 方法名:SdkInit 描述:这个方法用于Sdk初始化,入参只需要AOneId网页授权回调回来的token 使用前置条件:AoneId网页授权成功后,获取到token,然后传入这个方法,注意这里有获取ip的行为,需要在用户同意隐私协议后才能调用 使用线程: 主线程 回调线程: 主线程 使用方法: Map params new HashMap<>(); params.put(Const.INITPARAMS.AONEIDTOKEN, idToken); SdkInit(this,params); 参数说明: @param context 当前的Activity @param params map类型的入参,这里只需要往map里面传入一个参数,key是Const.INITPARAMS.AONEIDTOKEN,value是AoneId授权成功后的token 接口回调数据: 回调后的数据类型是map类型, 成功回调示例: {code"0x00000", data{"aoneSdkToken":"aoneSdk的token"}, message成功} 失败回调示例:{code"0x00999", data{}, message未知错误} 接口回调数据字段说明: code: 状态码, data: 数据, message: 消息 / private void SdkInit(MainActivity context,Map params) { AOneSdkClient.Companion.SdkInit(context, params, new AOneSdkClient.Companion.SdkCallBack() { @Override public void onResponse(@NonNull Map map) { Log.i(TAG, "[init] response: " + map); String code map.get(Const.RESPONSE.CODE); String message map.get(Const.RESPONSE.MESSAGE); if (ResultCode.SUCCESS.getValue().equals(code)) { String data map.get(Const.RESPONSE.DATA); if (!TextUtils.isEmpty(data)) { Map dataMaps GsonUtils.Companion.GsonToMaps(data); if (dataMaps ! null) { String aoneSdkToken dataMaps.get(Const.DATA.AoneSdkToken); if (TextUtils.isEmpty(aoneSdkToken)){ return; } Log.i(TAG, "[init] 这里需要保存aoneSdkToken 下次自动登录的时候回传给sdk: " + aoneSdkToken); Toast.makeText(MainActivity.this, getText(R.string.initsuccess), Toast.LENGTHSHORT).show(); } } } else { findViewById(R.id.aOneAccountLogin).setEnabled(true); findViewById(R.id.aOneWebViewLogin).setEnabled(true); Toast.makeText(MainActivity.this, message, Toast.LENGTHSHORT).show(); } } }); }