乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Android | 極光一鍵登錄集成手冊(cè)

       看見就非常 2020-05-08

      黑暗中,追尋那微亮的曙光。

      前言

      某天翻閱極光文檔時(shí),發(fā)現(xiàn)極光也推出了一鍵登錄,先來看個(gè)效果圖:

      之前有幸體驗(yàn)了 Mob 的一鍵登錄,而今來體驗(yàn)下極光的一鍵登錄,掃描二維碼想下載個(gè) Demo 體驗(yàn)玩一波,尷尬的是,掃出了維護(hù)中,本站暫時(shí)關(guān)閉,艾瑪??????。此問題已反饋極光工作人員。

      說句實(shí)在話,而今的互聯(lián)網(wǎng)變更速度,簡(jiǎn)直讓人目不暇接,單單從用戶體驗(yàn)來講,著實(shí)讓人各種眼光一亮,閃閃冒金星?,F(xiàn)在還能記得 Android 4.x 版本的大黑主題,五彩斑斕的黑色。??????

      回到正題上,單純從用戶登錄而言,同樣也是各種迭代升級(jí),不斷的進(jìn)化,不斷的提升用戶友好度。從傳統(tǒng)手機(jī)號(hào)碼 + 驗(yàn)證碼方式,當(dāng)現(xiàn)在三方登錄,再到而今的一鍵登錄,很慶幸,可以感受互聯(lián)網(wǎng)帶來的魅力。

      回顧下傳統(tǒng)登錄方式,也就是通過手機(jī)號(hào)碼 + 驗(yàn)證碼的優(yōu)勢(shì):

      • 操作簡(jiǎn)單: 輸入手機(jī)號(hào),輸入驗(yàn)證碼,即可通過,簡(jiǎn)單快捷;

      • 知曉人多: 至少我回村大爺大媽都知道大部分軟件都可以直接通過手機(jī)號(hào) + 驗(yàn)證碼方式直接注冊(cè),然后就可以隨便玩了。

      再來說說個(gè)人認(rèn)為的劣勢(shì)吧。

      • 驗(yàn)證碼短信不及時(shí): 很多時(shí)候都會(huì)出現(xiàn)這么一種情況,點(diǎn)擊了驗(yàn)證碼,也開始了倒計(jì)時(shí),但是手機(jī)遲遲接受不到驗(yàn)證碼的信息,著急的時(shí)候真心很無奈,尤其高峰期;

      • 手殘黨易輸入錯(cuò)誤: 單純個(gè)人而言,很多時(shí)候會(huì)尷尬的輸入錯(cuò)誤,然后包括到現(xiàn)在為止,每次輸入驗(yàn)證碼都要小心翼翼并且一個(gè)個(gè)校對(duì)很多次。??????

      當(dāng)然以上僅僅是個(gè)人使用過程中個(gè)人理解,也歡迎各位交流學(xué)習(xí)。

      那么這個(gè)一鍵登錄,相比傳統(tǒng)又具有什么優(yōu)勢(shì)呢?

      • 顯而易見的,從用戶輸入手機(jī)號(hào)、發(fā)送驗(yàn)證碼、驗(yàn)證驗(yàn)證碼有效性,直接升級(jí)到只需要點(diǎn)個(gè)按鈕即可完成上述三步操作;

      • 針對(duì)后臺(tái)而言,也省略了對(duì)接第三方發(fā)送短信 SDK 、提供前端接口以及驗(yàn)證前端發(fā)送數(shù)據(jù)有效性;

      • 針對(duì)前端而言,用戶一步操作即可替換原有三步操作,且直接可以拿到有效手機(jī)號(hào),省去很多 Code,何樂而不為?并且再也不需要挨個(gè)找運(yùn)營(yíng)商官方文檔挨個(gè)痛苦集成了。

      小伙伴說了,你看了嗎,你就胡咧咧。好,哥兒們我給你附上三大運(yùn)行商的鏈接:

      三大運(yùn)營(yíng)商地址已附上,不服的小伙伴隨時(shí)查閱~

      其實(shí),萬物歸根,根本還是簡(jiǎn)單了。大道歸一,大道為簡(jiǎn),才是真理?;ɡ锖诟懔?n 多,僅僅就是注冊(cè)登錄,除非死鐵粉,不然至少個(gè)人直接 Say Bye or 跳過。

      實(shí)踐

      說的天花爛墜,不如真正實(shí)踐一波。何況好東西,誰不想趕快體驗(yàn)一波?感受下它帶來的魅力呢?

      一、翻閱極光,簡(jiǎn)單了解

      此物誕生于 18 年,天吶,我現(xiàn)在才知道:

      打開極光關(guān)于認(rèn)證介紹,簡(jiǎn)單截個(gè)圖:

      在這里插入圖片描述

      目前已支持平臺(tái):

      • Android

      • iOS

      未支持(包含尚未開放)平臺(tái):

      • Web (僅支持中國移動(dòng)以及中國電信,還需要聯(lián)系商務(wù))

      • Flutter (未支持,熱門的呀,咋會(huì)不支持的呢)

      二、移步 Android SDK 集成指南

      首先極光官網(wǎng)創(chuàng)建個(gè)項(xiàng)目,其次記得配置對(duì)應(yīng)平臺(tái)所需信息,這里為大家附上截取官網(wǎng)的一個(gè)說明:

      關(guān)鍵信息已紅線標(biāo)明。

      隨后我們開始設(shè)置 Android 應(yīng)用包名以及應(yīng)用簽名,如下圖所示:

      這里單獨(dú)注明下之前記錄的獲取 MD5 方式:

      之后配置我們的一鍵登錄 RSA 加密公鑰:

      關(guān)于 RSA 加密公鑰,可自己代碼生成,也可以直接使用在線網(wǎng)址直接生成,將公私鑰保存下來即可,簡(jiǎn)單方便快捷:

      比如我在這里使用的非對(duì)稱加密公鑰:

      -----BEGIN PUBLIC KEY-----
      MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBsfT9nfWqRs1Z10m1U7znvGwE
      8ddPsRUvSurJaSV7jxEVVZUUiUoeK1lh+fVOoMAosxCEv+iqQDysUHR52QcPTXEv
      Mv0wp5YlCHIj7xckKVU2jxl49zVmaUxhvUXH1C9dbkOBGRtSt9bC7TkvYtVa4X3n
      Xh0+GMBQ8MNNBfywSwIDAQAB
      -----END PUBLIC KEY-----
      復(fù)制代碼

      以及非對(duì)稱加密私鑰:

      -----BEGIN PRIVATE KEY-----
      MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMGx9P2d9apGzVnX
      SbVTvOe8bATx10+xFS9K6slpJXuPERVVlRSJSh4rWWH59U6gwCizEIS/6KpAPKxQ
      dHnZBw9NcS8y/TCnliUIciPvFyQpVTaPGXj3NWZpTGG9RcfUL11uQ4EZG1K31sLt
      OS9i1VrhfedeHT4YwFDww00F/LBLAgMBAAECgYEAk4SuOs4oANRFp4vgtjodYDzP
      5AAwZKBQqyEaqeTryCvQ7fetP+PD0DBhtc4CNy0UzKp8BS6Hy8p6qx3nZ7mTto3H
      aRIG+K+UhD1BOi8ZaxlIV+DBIyEHOnIjwIgKXg0j5bXqI+qLo6zC84O5hlEJPwDR
      Wy6tmj8dGXPxY75JUukCQQD3c0YGjdx0Qw6e+zH0g0cYKGmbGiDI1y+5QnZ83Yi2
      i3kZUTCLEPIHaiC50u9VD5G6XaPEBv/psLFSbwD84zVHAkEAyGM2hpiVEsu/FTwr
      rsONH8O350xTOHmtNHdwRXRgQEvuf5GUMluwxnca/mWb38IVHKQCwGlLxEUZkuXR
      A8u+3QJAetjnsulKwQ1pfNQIgPOLoBqwEyhtjkgGkVrFqEfzT2z+uersxp2rCrNN
      e/OUjg4ksvk6DF/NPR9TaTFitCm4kQJAeAbtRwun5z1BNF/5LlIVetxJkHKoOmCv
      fYi5J/EAIiMZNTIm2U8QgKAg/BYymoFvEduvhj7L0kEtg07CtopYxQJBANW27X9y
      DLuxwi6mYJauG1VQ6z4cjDm+TxuuOVcxba4q+VgHufycKyuqsSu6BaqiPeg2+2XF
      Td22XO52Jc3EGw8=
      -----END PRIVATE KEY-----
      復(fù)制代碼

      搞定之后,提交審核即可。

      這些操作完成記得和極光的商務(wù)溝通下,不然會(huì)被打回這些操作完成記得和極光的商務(wù)溝通下,不然會(huì)被打回這些操作完成記得和極光的商務(wù)溝通下,不然會(huì)被打回

      重要的事情說三遍~

      客服小姐姐聲音很甜~

      極光同樣為我們提供了倆種集成方案:

      • 本地工程配置

      • jcenter 自動(dòng)集成步驟

      2020 年了,必須自動(dòng)集成搞起來呀~

      2.1 配置權(quán)限

          <!-- Required -->
          <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.READ_PHONE_STATE" />
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
          <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
          <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
          <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
          <uses-permission android:name="android.permission.WRITE_SETTINGS"
              tools:ignore="ProtectedPermissions" />
          <uses-permission android:name="android.permission.GET_TASKS" />
      
          <!-- Optional -->
          <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于開啟 debug 版本的應(yīng)用在6.0 系統(tǒng)上 層疊窗口權(quán)限 -->
          <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
          <uses-permission android:name="android.permission.WAKE_LOCK" />
          <uses-permission android:name="android.permission.VIBRATE" />
      復(fù)制代碼

      2.2 處理兼容 Android P 默認(rèn)限制使用 Http 請(qǐng)求

      在 res 目錄下新建 xml 目錄,并新建一個(gè)名為 network_security_config.xml 的文件,拷貝如下內(nèi)容到 xml 里:

      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <base-config cleartextTrafficPermitted="true">
              <trust-anchors>
                  <certificates src="system" />
              </trust-anchors>
          </base-config>
      </network-security-config>
      復(fù)制代碼

      在 AndroidManifest.xml 中配置下:

          <application
              ...
              android:networkSecurityConfig="@xml/network_security_config" >
              
          </application>
      復(fù)制代碼

      2.3 檢查 project 的 gradle 已支持 jcenter

      一般而言,Android Studio 項(xiàng)目默認(rèn)配置了 Jcenter,但是我們還是要檢查一番。

      點(diǎn)開工程下 gradle 文件,檢查是否配置如下注釋倆個(gè)地方。

      buildscript {
          repositories {
              google()
              jcenter() // 這個(gè)
          }
          // ...
      }
      
      allprojects {
          repositories {
              google()
              jcenter() // 還有這個(gè)東東
          }
      }
          // ...
      復(fù)制代碼

      2.4 在 module 的 gradle 中配置并添加依賴

      android {
          // ...
          defaultConfig {
              // ...
              ndk {
                  //兼容的 cpu 類型
                  abiFilters 'armeabi'
              }
              // 極光配置
              manifestPlaceholders = [
                      JPUSH_PKGNAME : applicationId,
                      JPUSH_APPKEY : "App Key", //Portal上注冊(cè)的包名對(duì)應(yīng)的 appKey.
                      JPUSH_CHANNEL : "developer-default", //暫時(shí)填寫默認(rèn)值即可.
              ]
          } 
      }
      
      dependencies {
          // ...
          implementation 'cn.jiguang.sdk:jverification:2.5.2'
          implementation 'cn.jiguang.sdk:jcore:2.1.4
      }
      復(fù)制代碼

      關(guān)于依賴最新版本號(hào)可直接訪問如下鏈接查看即可:

      2.5 添加極光認(rèn)證混淆配置

      	-dontoptimize
      	-dontpreverify
      	
      	-dontwarn cn.jpush.**
      	-keep class cn.jpush.** { *; }
      	-dontwarn cn.jiguang.**
      	-keep class cn.jiguang.** { *; }
      	-dontwarn com.cmic.**
      	-keep class com.cmic.** { *; }
      	-dontwarn com.unicom.**
      	-keep class com.unicom.** { *; }
      	-dontwarn cn.com.chinatelecom.**
      	-keep class cn.com.chinatelecom.** { *; }
      復(fù)制代碼

      2.6 Application 中初始化極光認(rèn)證

      package com.hlq.jiguangdemo.app
      
      import android.app.Application
      import android.util.Log
      import cn.jiguang.verifysdk.api.JVerificationInterface
      import com.hlq.jiguangdemo.BuildConfig
      
      /**
       * @author:heliquan
       * @date:2020-01-10 00:29
       * @desc:
       */
      class BaseApplication : Application() {
      
          override fun onCreate() {
              super.onCreate()
              initJPushSetting()
          }
      
          /**
           * 初始化極光認(rèn)證
           */
          private fun initJPushSetting() {
              JVerificationInterface.init(
                  this,
                  5000
              ) { code, msg ->
                  val logMsg = when (code) {
                      8000 -> {
                          "===> 極光認(rèn)證初始化成功~! $msg"
                      }
                      else -> {
                          "===> 極光認(rèn)證初始化失??!   $msg"
                      }
                  }
                  Log.e("HLQ_Struggle", logMsg)
              }
              // 打開調(diào)試模式
              JVerificationInterface.setDebugMode(BuildConfig.DEBUG)
          }
      
      }
      復(fù)制代碼

      別忘記 AndroidManifest 中配置 name 屬性。

          <application
              ...
              android:name=".app.BaseApplication"
              ...>
      復(fù)制代碼

      三、實(shí)戰(zhàn)

      Android 6.0 動(dòng)態(tài)申請(qǐng)權(quán)限,這個(gè)鍋剛出來時(shí)那是相當(dāng)痛苦啊,各種憂愁。同樣,我這邊有個(gè)設(shè)備是 Android 9.0 系統(tǒng),那么在基于以上配置完成后,我們首先開始動(dòng)態(tài)申請(qǐng)權(quán)限。

      3.1 動(dòng)態(tài)申請(qǐng) READ_PHONE_STATE 權(quán)限

      關(guān)于權(quán)限管理庫,網(wǎng)上琳瑯滿目,在此特意推薦一款個(gè)人使用較為不錯(cuò)的動(dòng)態(tài)權(quán)限管理庫:

      使用也是很 easy,F(xiàn)ollow me~

      由于個(gè)人習(xí)慣使用 Kotlin ,我們先進(jìn)行 PermissionsDispatcher 基礎(chǔ)配置 (app/build)

      // ...
      
      apply plugin: 'kotlin-kapt'
      
      // ...
      
      dependencies {
          // ...
          // 動(dòng)態(tài)權(quán)限申請(qǐng)
          implementation "org.permissionsdispatcher:permissionsdispatcher:4.6.0"
          kapt "org.permissionsdispatcher:permissionsdispatcher-processor:4.6.0"
      }
      
      復(fù)制代碼

      隨后我們?cè)谝暾?qǐng)權(quán)限的地方新增注解并開始動(dòng)態(tài)請(qǐng)求權(quán)限:

      package com.hlq.jiguangdemo
      
      import android.Manifest
      import android.os.Bundle
      import android.view.View
      import android.widget.Toast
      import androidx.appcompat.app.AppCompatActivity
      import cn.jiguang.verifysdk.api.JVerificationInterface
      import permissions.dispatcher.NeedsPermission
      import permissions.dispatcher.OnShowRationale
      import permissions.dispatcher.RuntimePermissions
      
      // 第一步:新增 RuntimePermissions 注解,標(biāo)明在編譯時(shí)生成對(duì)應(yīng)請(qǐng)求映射
      @RuntimePermissions
      class MainActivity : AppCompatActivity() {
      
          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
              setContentView(R.layout.activity_main)
          }
      
          /**
           * 一鍵登錄
           */
          public fun oneKeyLogin(view: View) {
              // 第四步:檢查權(quán)限是否授予
              // 寫這個(gè)之前記得 build 下,Runtime 運(yùn)行時(shí)生成
              requestReadPhoneStateWithPermissionCheck()
          }
      
          private fun handlerOneKeyLogin() {
              // 這里開始編寫實(shí)際的一鍵登錄具體請(qǐng)求代碼
          }
      
           /**
           * 權(quán)限請(qǐng)求回調(diào)
           */
          override fun onRequestPermissionsResult(
              requestCode: Int,
              permissions: Array<out String>,
              grantResults: IntArray
          ) {
              super.onRequestPermissionsResult(requestCode, permissions, grantResults)
              onRequestPermissionsResult(requestCode, grantResults)
          }
      
           /**
           * 第二步:指明對(duì)應(yīng)要?jiǎng)討B(tài)申請(qǐng)的權(quán)限,可聲請(qǐng)多個(gè)權(quán)限
           */
          @NeedsPermission(Manifest.permission.READ_PHONE_STATE)
          fun requestReadPhoneState() {
              handlerOneKeyLogin()
          }
      
          /**
           * 第三步:解釋說明申請(qǐng)權(quán)限具體作用,隨后 Build
           */
          @OnShowRationale(Manifest.permission.READ_PHONE_STATE)
          fun onRequestReadPhoneStateRationale() {
              Toast.makeText(this, "請(qǐng)同意 App 請(qǐng)求授權(quán)!", Toast.LENGTH_SHORT).show()
          }
      
      }
      復(fù)制代碼

      上述代碼中,第一步以及第二步必須填寫,而為了程序的健壯性,一般我們還會(huì)添加例如用戶拒絕權(quán)限以及用戶點(diǎn)擊 "不再詢問" 的后續(xù)操作流程,此處僅僅是為了體驗(yàn)極光的一鍵登錄,暫時(shí)完善個(gè)動(dòng)態(tài)申請(qǐng)權(quán)限即可。??????

      3.2 使用前環(huán)境檢測(cè)

      在使用極光一鍵認(rèn)證前,我們需要具備如下幾個(gè)條件:

      • 極光一鍵認(rèn)證 SDK 是否已初始化完畢;

      • 當(dāng)前的手機(jī)網(wǎng)絡(luò)環(huán)境是否可以使用認(rèn)證(基于流量);

      • 是否授予對(duì)應(yīng)權(quán)限,獲取手機(jī)狀態(tài)等

      基于以上三點(diǎn),我們開始完善 oneKeyLogin 一鍵登錄方法:

          /**
           * 一鍵登錄
           */
          public fun oneKeyLogin(view: View) {
              // 檢查當(dāng)前是否初始化成功極光 SDK
              if (JVerificationInterface.isInitSuccess()) {
                  // 判斷當(dāng)前的手機(jī)網(wǎng)絡(luò)環(huán)境是否可以使用認(rèn)證。
                  if (!JVerificationInterface.checkVerifyEnable(this)) {
                      Toast.makeText(this, "[2016],msg = 當(dāng)前網(wǎng)絡(luò)環(huán)境不支持認(rèn)證", Toast.LENGTH_SHORT).show()
                      return
                  }
                  // 檢查權(quán)限是否授予
                  requestReadPhoneStateWithPermissionCheck()
              } else {
                  Toast.makeText(this, "極光 SDK 尚未初始化成功~!", Toast.LENGTH_SHORT).show()
              }
          }
      復(fù)制代碼

      3.3 一鍵登錄

      首先我們查看 API 文檔了解關(guān)鍵信息:

      這點(diǎn)真心佩服極光開發(fā)工程師,幾乎都是如果沒有則自動(dòng)獲取,很是方便,尤其對(duì)于我這樣又懶又菜的小白而言。

      接口描述也很是貼心,一起來看:

      而關(guān)于點(diǎn)擊授權(quán)事件返回碼,我們提前了解下,方便后續(xù)集成:

      為了便于博文演示,還是決定輸入一些返回結(jié)果,古老的 findViewById 不好玩了,嘗嘗 Kotlin 神器吧,來先激活一下(app/build):

          // 啟動(dòng) Kotlin Android Extensions
          androidExtensions {
              experimental = true
          }
      復(fù)制代碼

      隨后,我們開始完善我們的一鍵登錄細(xì)節(jié):

          /**
           * 處理一鍵登錄細(xì)節(jié)
           */
          private fun handlerOneKeyLogin() {
              // 配置 Login Setting
              val settings = LoginSettings()
              settings.isAutoFinish = true // 登錄完成后自動(dòng)關(guān)閉授權(quán)頁
              settings.timeout = 15 * 1000 // 設(shè)置超時(shí)時(shí)間,單位毫秒。 合法范圍(0,30000],范圍以外默認(rèn)設(shè)置為10000
              settings.authPageEventListener = object : AuthPageEventListener() {
                  override fun onEvent(cmd: Int, msg: String?) {
                      Log.e(TAG, "===> onEvent code:$cmd msg:$msg")
                  }
              }
              // 開始一鍵登錄
              JVerificationInterface.loginAuth(
                  this, settings
              ) { code, content, operator ->
                  when (code) {
                      6000 -> { // Login Token 獲取成功
      
                      }
                      else -> {
      
                      }
                  }
                  tv_login_result.text = "code:$code \n content:$content \n operator:$operator"
              }
          }
      復(fù)制代碼

      說的再天花爛墜,沒個(gè)實(shí)際效果也是空說,我們 Run 一波,瞅瞅效果如何:

      速度很快,有沒有感覺到~

      3.4 獲取手機(jī)號(hào)

      在上述步驟中,我們通過一鍵登錄獲取到了 loginToken,而在實(shí)際項(xiàng)目中,我們很多時(shí)候都需要獲取到用戶實(shí)際的手機(jī)號(hào)碼,那么我們?nèi)绾胃鶕?jù) loginToken 獲取用戶手機(jī)號(hào)呢?

      別急,往下看~

      這個(gè)時(shí)候就需要服務(wù)端童鞋幫助咯,提供一個(gè)接口,通過咱傳遞的 loginToken 獲取對(duì)應(yīng)的手機(jī)號(hào)碼信息咯。

      這里不作為重點(diǎn),這里不具體演示 App 發(fā)請(qǐng)求獲取手機(jī)號(hào)咯。

      3.5 自定義授權(quán)頁面 UI 樣式

          /**
           * 自定義授權(quán)頁面 UI 樣式
           */
          private fun customUIStyle() {
      
              val qq = ImageView(this)
              qq.setImageResource(R.drawable.qq)
      
              val uiConfig = JVerifyUIConfig.Builder()
                  .setAuthBGImgPath("main_bg")
                  .setNavColor(-0xff7930)
                  .setNavText("登錄")
                  .setNavTextColor(-0x1)
                  .setNavReturnImgPath("umcsdk_return_bg")
                  .setLogoWidth(70)
                  .setLogoHeight(70)
                  .setLogoHidden(false)
                  .setNumberColor(-0xcccccd)
                  .setLogBtnText("本機(jī)號(hào)碼一鍵登錄")
                  .setLogBtnTextColor(-0x1)
                  .setLogBtnImgPath("umcsdk_login_btn_bg")
                  .setAppPrivacyOne("應(yīng)用自定義服務(wù)條款一", "https://www./about")
                  .setAppPrivacyTwo("應(yīng)用自定義服務(wù)條款二", "https://www./about")
                  .setAppPrivacyColor(-0x99999a, -0xff7a30)
                  .setUncheckedImgPath("umcsdk_uncheck_image")
                  .setCheckedImgPath("umcsdk_check_image")
                  .setSloganTextColor(-0x666667)
                  .setLogoOffsetY(50)
                  .setLogoImgPath("logo_cm")
                  .setNumFieldOffsetY(170)
                  .setSloganOffsetY(230)
                  .setLogBtnOffsetY(254)
                  .setNumberSize(18)
                  .setPrivacyState(false)
                  .setNavTransparent(false)
                  .addCustomView(
                      qq, false
                  ) { context, _ ->
                      Toast.makeText(context, "動(dòng)態(tài)注冊(cè)的其他按鈕222", Toast.LENGTH_SHORT).show()
                  }
                  .setPrivacyOffsetY(30).build()
              JVerificationInterface.setCustomUIWithConfig(uiConfig)
          }
      復(fù)制代碼

      隨后在我們剛剛處理一鍵登錄的方法中新增此項(xiàng):

          /**
           * 處理一鍵登錄細(xì)節(jié)
           */
          private fun handlerOneKeyLogin() {
              customUIStyle()
      		// ...
          }
      復(fù)制代碼

      效果如下,為了演示,效果表介意咯。

      有的小伙伴說了,那如果我想要添加自己的一些控件怎么辦呢?

      很 easy,參考如下截圖即可,極光文檔寫的忒 6 咯,表怪我忒懶了。

      3.6 設(shè)置授權(quán)頁彈窗模式

      這個(gè)更加 easy 了,由于忒晚了,這里就直接演示 low 到爆的效果咯,細(xì)節(jié)各位慢慢打磨吧~

      先來瞅瞅極光小哥哥為我們搞好的文檔:

      Step 1:在 AndroidManifest 中添加授權(quán)頁 Activity 并設(shè)置對(duì)應(yīng)的 style

        <activity
            android:name="cn.jiguang.verifysdk.CtLoginActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:launchMode="singleTop"
            android:screenOrientation="unspecified"
            android:theme="@style/ActivityDialogStyle" />
      復(fù)制代碼

      Step 2:配置具體彈窗 Style

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
          <style name="ActivityDialogStyle">
              <!--去掉action bar和標(biāo)題欄-->
              <item name="android:windowActionBar">false</item>
              <item name="android:windowNoTitle">true</item>
              <!--背景透明-->
              <item name="android:windowIsTranslucent">true</item>
              <!--dialog圓角-->
              <item name="android:windowBackground">@drawable/jverify_dialog_bg</item>
          </style>
      </resources>
      復(fù)制代碼

      Step 3:定義窗口圓角屬性

      <?xml version="1.0" encoding="utf-8"?>
      <shape xmlns:android="http://schemas./apk/res/android">
          <corners android:radius="5dp"/>
      </shape>
      復(fù)制代碼

      瞅一眼效果:

      由于時(shí)間原因,暫時(shí)草草實(shí)現(xiàn)簡(jiǎn)單效果咯。想想明天的任務(wù),頭大。

      四、叨叨幾句

      先說下測(cè)試的結(jié)果:

      網(wǎng)絡(luò)情況測(cè)試結(jié)果
      開啟 WiFi 關(guān)閉流量無法認(rèn)證
      開啟 WiFi 開啟流量一鍵登錄成功
      開啟流量一鍵登錄成功

      特殊情況測(cè)試結(jié)果:

      SIM 情況測(cè)試結(jié)果
      有效 SIM 卡一鍵認(rèn)證成功
      無效 SIM 卡無法認(rèn)證

      認(rèn)證速度,純屬個(gè)人瞎玩。測(cè)試依據(jù),點(diǎn)擊登錄前記錄當(dāng)前時(shí)間戳,并與 SDK 返回時(shí)間對(duì)比,此處僅供參考。

      網(wǎng)絡(luò)情況測(cè)試結(jié)果
      300 MB 寬帶 WiFi 且開啟流量218ms
      移動(dòng)網(wǎng)絡(luò)98ms

      其實(shí)整體流程而言,相對(duì)速度,等待期很短暫。

      聊下集成上手度吧。

      • 上手 easy,文檔寫的相對(duì)來說蠻不錯(cuò),新手通俗易懂;

      • 不足之處 Api 使用和文檔有些出入,我遇到情況就是使用官網(wǎng)提供的版本發(fā)現(xiàn)有的方法沒有,最后自己找的最新版本,這點(diǎn)有點(diǎn)坑。

      簡(jiǎn)單說下極光一鍵登錄流程吧:

      當(dāng)然里面包含很多的細(xì)節(jié),比如說如何知曉當(dāng)前流量歸屬哪兒個(gè)運(yùn)營(yíng)商,雙卡操作等,這些涉及到我個(gè)人知識(shí)盲區(qū),暫時(shí)不做了解。

      整體來說,90 分,很不錯(cuò)。第一次知道極光便是推送,依稀記得簡(jiǎn)簡(jiǎn)單單幾句話,推送搞定,當(dāng)時(shí)那個(gè)興奮吶,內(nèi)心默默把極光小哥哥香了一遍。

      最后,感謝極光小哥哥,讓我再次感受并實(shí)實(shí)在在體驗(yàn)了一番。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多