From 70a344485bd0c9b68ac91f72ed23ec5bfa998b09 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 25 十一月 2021 19:30:25 +0800 Subject: [PATCH] 功能完善 --- android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java | 177 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 132 insertions(+), 45 deletions(-) diff --git a/android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java b/android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java index 87d0aae..1a39f81 100644 --- a/android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java +++ b/android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java @@ -1,60 +1,100 @@ package com.yeshi.location.plugins; import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.graphics.Color; +import android.util.Log; import android.widget.ImageView; import com.mobile.auth.gatewayauth.AuthUIConfig; import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper; +import com.mobile.auth.gatewayauth.ResultCode; import com.mobile.auth.gatewayauth.TokenResultListener; +import com.mobile.auth.gatewayauth.model.TokenRet; +import com.yeshi.location.R; +import com.yeshi.location.utils.DimenUtils; +import java.util.HashMap; +import java.util.Map; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import io.flutter.plugin.common.BasicMessageChannel; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; +import io.flutter.plugin.common.StandardMessageCodec; +import io.flutter.plugin.common.StringCodec; -public class FlutterAliyunPhoneNumberAuthPlugins implements MethodChannel.MethodCallHandler { - public static String CHANNEL = "com.yeshi.location/aliyunOneKeyLogin"; // 鍒嗘瀽1 +public class FlutterAliyunPhoneNumberAuthPlugins implements BasicMessageChannel.MessageHandler<Object> { - static MethodChannel channel; - private Activity activity; + private static final String TAG = "AliyunPhoneNumberAuth"; + + private final Activity activity; + private final BasicMessageChannel<Object> messageChannel; private PhoneNumberAuthHelper mPhoneNumberAuthHelper; + private BasicMessageChannel.Reply<Object> reply; - private FlutterAliyunPhoneNumberAuthPlugins(Activity activity) { + + private FlutterAliyunPhoneNumberAuthPlugins(Activity activity, BinaryMessenger messager) { this.activity = activity; + this.messageChannel = new BasicMessageChannel<Object>(messager, "AliyunPhoneNumberAuth", StandardMessageCodec.INSTANCE); + messageChannel.setMessageHandler(this); } - public static void registerWith(Activity activity, BinaryMessenger messager) { - channel = new MethodChannel(messager, CHANNEL); - FlutterAliyunPhoneNumberAuthPlugins instance = new FlutterAliyunPhoneNumberAuthPlugins(activity); - channel.setMethodCallHandler(instance); + public static FlutterAliyunPhoneNumberAuthPlugins registerWith(Activity activity, BinaryMessenger messager) { + return new FlutterAliyunPhoneNumberAuthPlugins(activity, messager); } + @Override - public void onMethodCall(MethodCall methodCall, MethodChannel.Result result) { // 鍒嗘瀽 2 - String method = methodCall.method; + public void onMessage(@Nullable Object message, @NonNull BasicMessageChannel.Reply<Object> reply) { + this.reply = reply; + Map<String, String> arguments = (Map<String, String>) message; + String method = arguments.get("method"); switch (method) { + //鍒濆鍖� case "init": - initOneKeyLogin(); - result.success(true); + initOneKeyLogin(arguments.get("secret"), arguments.get("privacy"), arguments.get("protocol")); + Map<String, Object> map = new HashMap<>(); + map.put("code", 0); + reply.reply(map); break; - default: - result.notImplemented(); + + case "checkEnv": + mPhoneNumberAuthHelper.checkEnvAvailable(2); + break; + case "startLogin": + mPhoneNumberAuthHelper.getLoginToken(activity, 5000); + case "closeLogin": + mPhoneNumberAuthHelper.quitLoginPage(); + break; } + + } + + /** + * 鍚慏art鍙戦�佹秷鎭紝骞舵帴鍙桪art鐨勫弽棣� + * + * @param message 瑕佺粰Dart鍙戦�佺殑娑堟伅鍐呭 + * @param callback 鏉ヨ嚜Dart鐨勫弽棣� + */ + void send(String message, BasicMessageChannel.Reply<Object> callback) { + messageChannel.send(message, callback); } - private void initOneKeyLogin() { - sdkInit(""); - initUI(); + private void initOneKeyLogin(String secretInfo, String privacyUrl, String userProtocolUrl) { + sdkInit(secretInfo); + initUI(privacyUrl, userProtocolUrl); } + private void initUI(String privacy, String protocol) { - - private void initUI() { - - int width = DimenUtils.getScreenWidth(this); - int widthDP = DimenUtils.px2dip(this, width); + int width = DimenUtils.getScreenWidth(activity); + int widthDP = DimenUtils.px2dip(activity, width); AuthUIConfig uiCOnfig = new AuthUIConfig.Builder() .setPageBackgroundPath("shape_login_onkey_bg") @@ -62,45 +102,45 @@ .setNavColor(Color.WHITE) .setNavHidden(false) .setNavReturnImgPath("ic_login_close") - .setNavReturnImgWidth(22) - .setNavReturnImgHeight(22) + .setNavReturnImgWidth(32) + .setNavReturnImgHeight(32) .setNavReturnScaleType(ImageView.ScaleType.FIT_XY) .setWebNavColor(Color.BLACK) - .setWebNavReturnImgPath("ic_back_two") +// .setWebNavReturnImgPath("ic_back_two") .setWebViewStatusBarColor(Color.WHITE) .setStatusBarColor(Color.WHITE) - - .setLogoWidth(147) - .setLogoHeight(36) - .setLogoImgPath("ic_login_logo") + .setLogoWidth(0) + .setLogoHeight(0) +// .setLogoImgPath("ic_login_logo") .setLogoOffsetY(24 - 10) - .setSloganOffsetY(171 - 10) + .setSloganOffsetY(125 - 10) .setSloganTextSize(12) - .setSloganTextColor(Color.parseColor("#F804F5")) + .setSloganTextColor(activity.getResources().getColor(R.color.onekey_login_theme_color)) .setLogBtnText("饧�閿櫥褰�") .setLogBtnTextSize(17) - .setLogBtnTextColor(Color.parseColor("#F4DE4A")) + .setLogBtnTextColor(Color.WHITE) .setLogBtnBackgroundPath("shape_login_btn") - .setLogBtnOffsetY(229 - 10) + .setLogBtnOffsetY(170 - 10) .setLogBtnHeight(44) .setDialogWidth(305 * widthDP / 375) - .setDialogHeight(454) + .setDialogHeight(378) .setNavColor(Color.RED) .setSwitchAccHidden(true) - .setNumberColor(Color.parseColor("#0052F6")) + .setNumberColor(activity.getResources().getColor(R.color.onekey_login_theme_color)) .setNumberSize(36) - .setNumFieldOffsetY(128 - 10) + .setNumFieldOffsetY(65) - .setAppPrivacyOne("銆婄敤鎴锋湇鍔″崗璁��", BeibeiConstant.USER_AGREEMENT) - .setAppPrivacyTwo("銆婇殣绉佹斂绛栥��", BeibeiConstant.PRIVACY_POLICY) - .setAppPrivacyColor(Color.parseColor("#B3B8D3"), Color.parseColor("#51B3FF")) + .setAppPrivacyOne("銆婄敤鎴锋湇鍔″崗璁��", protocol) + .setAppPrivacyTwo("銆婇殣绉佹斂绛栥��", privacy) + .setAppPrivacyColor(activity.getResources().getColor(R.color.onekey_login_notify_color), activity.getResources().getColor(R.color.onekey_login_theme_color)) .setPrivacyBefore("鐧诲綍鍗宠〃绀哄悓鎰�") .setPrivacyEnd("") .setCheckedImgPath("ic_login_privacy_checked") + .setUncheckedImgPath("ic_login_privacy_unchecked") .setPrivacyTextSize(11) .setPrivacyState(false) .setVendorPrivacyPrefix("銆�") @@ -109,17 +149,67 @@ mPhoneNumberAuthHelper.setAuthUIConfig(uiCOnfig); } + private void sdkInit(String secretInfo) { - mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(activity.getApplicationContext(), new TokenResultListener(){ + mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(activity.getApplicationContext(), new TokenResultListener() { @Override public void onTokenSuccess(String s) { + Log.i(TAG, "onTokenSuccess锛�" + s); + TokenRet tokenRet = null; + try { + tokenRet = TokenRet.fromJson(s); + switch (tokenRet.getCode()) { + case ResultCode.CODE_ERROR_ENV_CHECK_SUCCESS: { + Log.i(TAG + , "缁堢鐜鏍¢獙鎴愬姛锛�" + s); + Map<String, Object> map = new HashMap<>(); + map.put("code", 0); + map.put("msg", "鐜鐩戞祴姝e父"); + reply.reply(map); + } + break; + + case ResultCode.CODE_START_AUTHPAGE_SUCCESS: + Log.i(TAG, "鍞よ捣鎺堟潈椤垫垚鍔燂細" + s); + break; + + case ResultCode.CODE_ERROR_USER_CANCEL: { + Log.i(TAG, "鐢ㄦ埛鍙栨秷鎿嶄綔锛�" + s); + Map<String, Object> map = new HashMap<>(); + map.put("code", Integer.parseInt(tokenRet.getCode())); + map.put("msg", "鍙栨秷鎿嶄綔"); + reply.reply(map); + } + break; + + + case ResultCode.CODE_SUCCESS: { + Log.i(TAG, "鑾峰彇token鎴愬姛锛�" + s); + mPhoneNumberAuthHelper.setAuthListener(null); + Map<String, Object> map = new HashMap<>(); + map.put("code", 0); + map.put("token", tokenRet.getToken()); + map.put("msg", "鑾峰彇token鎴愬姛"); + reply.reply(map); + } + break; + } + } catch (Exception e) { + e.printStackTrace(); + } } @Override public void onTokenFailed(String s) { - + Log.i(TAG, "onTokenFailed锛�" + s); + TokenRet + tokenRet = TokenRet.fromJson(s); + Map<String, Object> map = new HashMap<>(); + map.put("code", Integer.parseInt(tokenRet.getCode())); + map.put("msg", tokenRet.getMsg()); + reply.reply(map); } }); mPhoneNumberAuthHelper.getReporter().setLoggerEnable(true); @@ -127,7 +217,4 @@ } - - - } -- Gitblit v1.8.0