xiongzhu 3 năm trước cách đây
mục cha
commit
86d809883a
11 tập tin đã thay đổi với 185 bổ sung8 xóa
  1. BIN
      .DS_Store
  2. 2 0
      .gitignore
  3. BIN
      logo.png
  4. 14 4
      plugin.xml
  5. BIN
      src/.DS_Store
  6. 138 1
      src/android/UmengPlugin.java
  7. 8 0
      src/android/bg_login_dis.xml
  8. 5 0
      src/android/bg_login_en.xml
  9. BIN
      src/android/sina.aar
  10. 12 3
      umeng.gradle
  11. 6 0
      www/UmengPlugin.js

BIN
.DS_Store


+ 2 - 0
.gitignore

@@ -0,0 +1,2 @@
+.DS_Store
+node_modules/

BIN
logo.png


+ 14 - 4
plugin.xml

@@ -9,13 +9,23 @@
     <platform name="android">
         <config-file parent="/*" target="res/xml/config.xml">
             <feature name="UmengPlugin">
-                <param name="android-package" value="cordova-plugin-umeng.UmengPlugin" />
+                <param name="android-package" value="com.umeng.UmengPlugin" />
                 <param name="onload" value="true" />
             </feature>
         </config-file>
-        <config-file parent="/*" target="AndroidManifest.xml" />
-        <source-file src="src/android/UmengPlugin.java" target-dir="src/cordova-plugin-umeng/UmengPlugin" />
-        <framework src="android-build.gradle" custom="true" type="gradleReference" />
+        <config-file parent="/*" target="AndroidManifest.xml">
+            <uses-permission android:name="android.permission.INTERNET"/>
+            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
+            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+            <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
+            <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
+        </config-file>
+        <source-file src="src/android/UmengPlugin.java" target-dir="src/com/umeng" />
+        <source-file src="src/android/sina.aar" target-dir="libs"/>
+        <framework src="umeng.gradle" custom="true" type="gradleReference" />
+        <resource-file src="logo.png" target="res/drawable/logo.png" />
+        <resource-file src="src/android/bg_login_dis.xml" target="res/drawable/bg_login_dis.xml" />
+        <resource-file src="src/android/bg_login_en.xml" target="res/drawable/bg_login_en.xml" />
     </platform>
     <platform name="ios">
         <config-file parent="/*" target="config.xml">

BIN
src/.DS_Store


+ 138 - 1
src/android/UmengPlugin.java

@@ -1,8 +1,31 @@
-package cordova-plugin-umeng;
+package com.umeng;
 
+import android.content.Context;
+import android.content.pm.ActivityInfo;
+import android.graphics.Color;
+import android.os.Build;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.nirvana.tools.core.ExecutorManager;
+import com.umeng.commonsdk.UMConfigure;
+import com.umeng.umverify.UMResultCode;
+import com.umeng.umverify.UMVerifyHelper;
+import com.umeng.umverify.listener.UMCustomInterface;
+import com.umeng.umverify.listener.UMPreLoginResultListener;
+import com.umeng.umverify.listener.UMTokenResultListener;
+import com.umeng.umverify.model.UMTokenRet;
+import com.umeng.umverify.view.UMAuthRegisterViewConfig;
+import com.umeng.umverify.view.UMAuthUIConfig;
+
+import org.apache.cordova.CordovaInterface;
 import org.apache.cordova.CordovaPlugin;
 import org.apache.cordova.CallbackContext;
 
+import org.apache.cordova.CordovaWebView;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -11,6 +34,11 @@ import org.json.JSONObject;
  * This class echoes a string called from JavaScript.
  */
 public class UmengPlugin extends CordovaPlugin {
+    private final static String TAG = "CordovUmengPlugin";
+
+    private UMVerifyHelper mPhoneNumberAuthHelper;
+
+    private boolean sdkAvailable = true;
 
     @Override
     public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
@@ -22,6 +50,115 @@ public class UmengPlugin extends CordovaPlugin {
         return false;
     }
 
+    @Override
+    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
+        super.initialize(cordova, webView);
+        UMConfigure.init(cordova.getContext(), "62b8106188ccdf4b7eaba3e8", "android", UMConfigure.DEVICE_TYPE_PHONE, "");
+        mPhoneNumberAuthHelper = UMVerifyHelper.getInstance(this.cordova.getContext(), new UMTokenResultListener() {
+            @Override
+            public void onTokenSuccess(String s) {
+                try {
+                    Log.i(TAG, "checkEnvAvailable:" + s);
+                    UMTokenRet tokenRet = UMTokenRet.fromJson(s);
+                    if (UMResultCode.CODE_ERROR_ENV_CHECK_SUCCESS.equals(tokenRet.getCode())) {
+                        accelerateLoginPage(5000);
+                    }
+                    if (UMResultCode.CODE_START_AUTHPAGE_SUCCESS.equals(tokenRet.getCode())) {
+                        Log.i("TAG", "唤起授权页成功:" + s);
+                    }
+
+                    if (UMResultCode.CODE_SUCCESS.equals(tokenRet.getCode())) {
+                        Log.i("TAG", "获取token成功:" + s);
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onTokenFailed(String s) {
+                sdkAvailable = false;
+                Log.e(TAG, "checkEnvAvailable:" + s);
+                //终端环境检查失败之后 跳转到其他号码校验方式
+            }
+        });
+        mPhoneNumberAuthHelper.setAuthSDKInfo("+oY1et2uQC/WwXWcPQqu+zRSrAxcdgTmyIiyWbtmhWoxYNMifV3qkKzpnEtiIQ+MQe/CqLFIvCdkqcO9CSkhWhQWx5DJT126HlDHzzK3b5UslXnS4LqopbJdEUjNmLCpM+khgkgzmVOnrqvlr3dIr2OPp1FgYEnj6P6pmMyLIisULU0madYyszsdFT1DQ1D5ogxTgeJnPgtmDq70vDg+INvObRDvzRZ3fGPDHKKwWCtwJA2VLeDh/fKkqVDThETyy5z8b3fD4igdO3iH41JnSlHlTWbA05yYtWs+ujETuyw=");
+        mPhoneNumberAuthHelper.checkEnvAvailable(UMVerifyHelper.SERVICE_TYPE_LOGIN);
+    }
+
+    public void login() {
+        mPhoneNumberAuthHelper.addAuthRegistViewConfig("switch_acc_tv", new UMAuthRegisterViewConfig.Builder()
+                .setView(initDynamicView())
+                .setRootViewId(UMAuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_BODY)
+                .setCustomInterface(new UMCustomInterface() {
+                    @Override
+                    public void onClick(Context context) {
+                        mPhoneNumberAuthHelper.quitLoginPage();
+                    }
+                }).build());
+        int authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
+        if (Build.VERSION.SDK_INT == 26) {
+            authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
+        }
+        mPhoneNumberAuthHelper.setAuthUIConfig(new UMAuthUIConfig.Builder()
+                .setAppPrivacyOne("《自定义隐私协议》", "https://www.baidu.com")
+                .setAppPrivacyColor(Color.GRAY, Color.parseColor("#002E00"))
+                .setPrivacyState(false)
+                .setCheckboxHidden(true)
+                .setStatusBarColor(Color.TRANSPARENT)
+                .setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
+                .setLightColor(true)
+                .setVendorPrivacyPrefix("《")
+                .setVendorPrivacySuffix("》")
+                .setLogoImgPath("mytel_app_launcher")
+                .setScreenOrientation(authPageOrientation)
+                .create());
+    }
+
+    private View initDynamicView() {
+        TextView switchTV = new TextView(this.cordova.getContext());
+        RelativeLayout.LayoutParams mLayoutParams2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, dp2px(this.cordova.getContext(), 50));
+        mLayoutParams2.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
+        mLayoutParams2.setMargins(0, dp2px(this.cordova.getContext(), 450), 0, 0);
+        switchTV.setText("-----  自定义view  -----");
+        switchTV.setTextColor(0xff999999);
+        switchTV.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13.0F);
+        switchTV.setLayoutParams(mLayoutParams2);
+        return switchTV;
+    }
+
+    public static int dp2px(Context context, float dipValue) {
+        try {
+            final float scale = context.getResources().getDisplayMetrics().density;
+            return (int) (dipValue * scale + 0.5f);
+        } catch (Exception e) {
+            return (int) dipValue;
+        }
+    }
+
+    public static int px2dp(Context context, float px) {
+        try {
+            final float scale = context.getResources().getDisplayMetrics().density;
+            return (int) (px / scale + 0.5f);
+        } catch (Exception e) {
+            return (int) px;
+        }
+    }
+
+    public void accelerateLoginPage(int timeout) {
+        mPhoneNumberAuthHelper.accelerateLoginPage(timeout, new UMPreLoginResultListener() {
+            @Override
+            public void onTokenSuccess(String s) {
+                Log.e(TAG, "预取号成功: " + s);
+            }
+
+            @Override
+            public void onTokenFailed(String s, String s1) {
+                Log.e(TAG, "预取号失败:" + ", " + s1);
+            }
+        });
+    }
+
     private void coolMethod(String message, CallbackContext callbackContext) {
         if (message != null && message.length() > 0) {
             callbackContext.success(message);

+ 8 - 0
src/android/bg_login_dis.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="13dp" />
+    <solid android:color="#000000" />
+    <stroke
+        android:width="1dp"
+        android:color="#939599" />
+</shape>

+ 5 - 0
src/android/bg_login_en.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="13dp" />
+    <solid android:color="#26f50d" />
+</shape>

BIN
src/android/sina.aar


+ 12 - 3
android-build.gradle → umeng.gradle

@@ -1,10 +1,13 @@
+repositories{
+  flatDir {
+    dirs 'libs'
+  }
+}
 dependencies {
   // 友盟基础组件库(所有友盟业务SDK都依赖基础组件库)
   implementation 'com.umeng.umsdk:common:9.5.0'// (必选)
   implementation 'com.umeng.umsdk:asms:1.5.0'// 必选
 
-  implementation 'com.umeng.umsdk:abtest:1.0.0'//使用U-App中ABTest能力,可选
-
   //友盟Push依赖
   api 'com.umeng.umsdk:push:6.5.2'
 
@@ -17,7 +20,8 @@ dependencies {
   implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.9'//微信官方依赖库,必选
 
   implementation 'com.umeng.umsdk:share-sina:7.1.9'//新浪微博完整版
-  implementation 'com.sina.weibo.sdk:core:10.10.0:openDefaultRelease@aar'//新浪微博官方SDK依赖库,必选,如在线集成失败请本地下载离线包https://counsel.umeng.com/api/activity/download?fileName=activity/67/openDefault-10.10.0.aar
+  //implementation 'com.sina.weibo.sdk:core:10.10.0:openDefaultRelease@aar'//新浪微博官方SDK依赖库,必选,如在线集成失败请本地下载离线包https://counsel.umeng.com/api/activity/download?fileName=activity/67/openDefault-10.10.0.aar
+  implementation(name:'sina', ext:'aar')
 
   implementation 'com.umeng.umsdk:share-qq:7.1.9'//QQ完整版
   implementation 'com.tencent.tauth:qqopensdk:3.53.0'//QQ官方依赖库,必选
@@ -28,4 +32,9 @@ dependencies {
   implementation 'com.umeng.umsdk:uverify-logger:2.1.4'// 必选 
   implementation 'com.umeng.umsdk:uverify-crashshield:2.1.4'// 必选 
   implementation 'com.android.support:appcompat-v7:27.1.1'//(最低版本)
+}
+android {
+    defaultConfig {
+        manifestPlaceholders = [qqappid: "100424468"]
+    }
 }

+ 6 - 0
www/UmengPlugin.js

@@ -8,4 +8,10 @@ exports.initVerify = function (appKey, success, error) {
 };
 exports.checkEnv = function (success, error) {
     exec(success, error, 'UmengPlugin', 'checkEnv');
+};
+exports.login = function (success, error) {
+    exec(success, error, 'UmengPlugin', 'login');
+};
+exports.closeLogin = function (success, error) {
+    exec(success, error, 'UmengPlugin', 'closeLogin');
 };