跳轉到

Widget SDK

透過 Widget SDK 可以讓合作方在開發對接上,可以更容易且輕鬆地使用 Cabital 的 Widget 功能頁面。

開始使用

開始使用 Cabital Widget SDK,需要完成以下事項:

後端準備工作

為了嵌入我們的 SDK,必須在後端開發上完成幾個準備步驟,並將結果傳遞到 SDK 來初始化

  1. Widget URL:組合一個 Widget 跳轉網址,這會需要合作方的 partner_id 和拿來識別用戶的 user_ext_ref

    Widget URL 一定要包含上述兩個參數!

    不論想要引導用戶去哪個功能頁面,都應該包含 partner_iduser_ext_ref 兩個參數,近一步的說明及細節可以參考此篇

  2. 初始化 SDK:現在可以使用 Widget URL 來初始化 SDK

原生 SDKs

Frameworks Plugins (開發中)

  • Flutter plugin
  • React Native module

iOS SDK

需求

  • iOS 9.0 或以上的版本
  • Xcode 13+

整合

  1. 下載最新版本的 SDK 並解壓縮

    Swift Sample

    • Widget framework: CabitalWidget.xcframework
    • Version: 0.9
    • Release date: 2022/08/13
    • MD5: b3b482e87d9f2cf7fe34a160041db8c4
    • SDK: Download
  2. 複製 SDK dynamic library 檔案 CabitalWidget.xcframework 到專案資料夾中

  3. 在 Xcode 中,找到圖中的選單 File > Add Files to {project_name} 並將 SDK library files 加入專案中

    addingSDK

  4. 設定 Embed & Sign settingEmbed

    1. 找到圖中的設定位置 TARGETS > General > Frameworks, Libraries, and Embedded Content
    2. 點擊 + 按鈕,來新增 CabitalWidget.xcframework
    3. 設定 Embed 選項 Embed & Sign

設定相機存取權限

在實名認證的過程中,用戶會需要使用相機來掃描身份證件和自拍,以完成 Cabital 的實名認證流程,所以需要設定相機權限

settingPermissions

  1. 找到圖中的設定位置 TARGETS > Info > ****Custom iOS Target Properties****
  2. 點擊 + 按鈕,來新增相機和麥克風權限
    • Privacy - Camera Usage Description
    • Privacy - Microphone Usage Description

Swift 範例

    import UIKit
    import CabitalWidget

    class SampleViewController: UIViewController {
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        func openWidget() {
            let url = "https://xxx" //Widget URL what you want to guide users to.
            CabitalWidget.open(url: url, currentController: self)
        }
    }

Android SDK

需求

  • AndroidX
  • API level 21 (Android 5.0) 或以上的版本
  • Kotlin 1.5 或以上的版本

如果 minSdkVersion 不是 21 以上的版本,可能會看到以下的警告訊息!

    Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library [widget-release.aar] /Users/xxxxxx/.gradle/caches/transforms-3/98a238675acc4cfa298c45ddad66ddb4/transformed/widget-release/AndroidManifest.xml as the library might be using APIs not available in 19

    Suggestion: use a compatible library with a minSdk of at most 19, or increase this project's minSdk version to at least 21, or use tools:overrideLibrary="com.cabital.widget" to force usage (may lead to runtime failures)

範例

  1. 將 library dependency 加到 build.xml
    implementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false }
    implementation 'com.google.zxing:core:3.3.0'
    
  2. AAR file 加到專案中

  3. 權限設置

    1
    2
    3
    4
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    

  4. 初始化
    1
    2
    3
    4
    5
    6
    7
    8
    9
    val widgetUrl = "https://connect.cabital.com/xxxx" 
    (should contain partnerId, userExtRef, feature, other parameters)
    
    
    val widgetSdk = CabitalWidgetMobileSdk.Builder(this)
                .withUrl(url)
                .withLocale("en")   // Locale defined
                .build()
    widgetSdk.launch()