カテゴリー・パッケージ・リポジトリを検索

パッケージ詳細v4.0.1

persona_flutter

Flutter用のPersonaインクワイアリ。iOSおよびAndroidのネイティブv2 SDKを統合しています。

AndroidiOS
30日間ダウンロード
3400
いいね数
26
Pub ポイント
150

パッケージをインストール

flutter pub add persona_flutter

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Persona Flutterは、AndroidおよびiOS向けモバイルアプリケーションにPersonaの本人確認サービスを統合できるFlutterパッケージです。ネイティブv2 SDKへのアクセスを統合インターフェースで提供し、セキュアなユーザーオンボーディングと本人確認の実装を簡素化します。このパッケージはプラットフォーム固有の設定や通信を処理するため、開発者はネイティブコードを直接管理せずにユーザーフローの構築に集中できます。最小限の設定でリアルタイムの本人確認が可能になります。

用途

  • ユーザーのオンボーディングと本人確認
  • KYC規制への準拠
  • セキュアなアカウント作成
  • 金融アプリにおける不正防止
  • スムーズな登録プロセス

主な機能

  • iOS および Android 用のネイティブ SDK 統合
  • Flutter開発者向けの簡略化されたAPI
  • Persona の v2 SDK のサポート
  • クロスプラットフォームの一貫性
  • リアルタイム検証ワークフロー

適している対象

  • 金融サービスアプリ
  • 規制されたマーケットプレイス
  • アイデンティティに敏感なプラットフォーム
  • コンプライアンスを必要とするモバイルアプリ
  • iOS および Android 用に Flutter を使用する開発者

注意事項

  • 有効なPersona APIキーが必要です
  • ネイティブSDKのバージョンに依存
  • 追加のアプリ権限が必要になる場合があります
  • iOSおよびAndroidプラットフォームに限定
  • ユーザーの同意およびデータプライバシーの適切な取り扱いが必要です

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Persona Inquiry for Flutter

pub likes downloads donate

Native implementation of the Persona Inquiry flow for Flutter.

This plugin integrates the native v2 SDKs:

Feel free to leave any feedback here.

Important: Persona stopped support for v1 on December 31, 2022. If you need the older mobile integration, check the version 2.1.5 of this plugin or v1 branch of this repository.

Installation

Add persona_flutter as a dependency in your pubspec.yaml file.

Migrating from 3.x to 4.0.0

Version 4.0.0 includes several breaking changes:

  • Toolchain Upgraded: Requires AGP 8.9.1, Gradle 8.11.1, Kotlin 2.1.0, compileSdk 36, and JDK 17+.
  • Removed routingCountry parameter: The routingCountry option has been removed from all configuration classes (TemplateIdConfiguration, TemplateVersionConfiguration, InquiryIdConfiguration). If you were using this parameter, remove it from your configuration calls.

iOS

Requirements
  • iOS 13.0 or later is required.

  • Update your ios/Runner/Info.plist:

    <key>NSCameraUsageDescription</key>
    <string>This app requires access to the camera.</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>This app requires access to the photo library.</string>
    
  • Optionally if you need support for video, NFC verifications or GPS collections, add to your ios/Runner/Info.plist:

    <key>NSMicrophoneUsageDescription</key>
    <string>This app requires access to the microphone.</string>
    <key>NFCReaderUsageDescription</key>
    <string>This app requires access to the NFC.</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>This app requires access to the Location when in use.</string>
    

Note: Cocoapods 1.9.3 has a bug that prevents builds from selecting the correct architecture. See more details here. Please downgrade to 1.8.x or upgrade to 1.10.x

Privacy

The Persona SDK collects a user’s IDFV for fraud prevention purposes. In App Store Connect > Your App > App Privacy, if you haven’t already add in a “Device Identifier,” and fill out the questionnaire with the following answers:

  • Usage: App Functionality (covers fraud prevention)
  • Are the device IDs collected from this app linked to the user’s identity? Yes
  • Do you or your third-party partners use device IDs for tracking purposes? No

Be sure to also update your privacy manifest according to the features you are making use of from the SDK. See our iOS Privacy Manifest instructions for more information.

Android

Requirements
  • JDK 17 or later is required.

  • Change the minSdkVersion to 21 (or higher) in your android/app/build.gradle file.

  • Declare the following permissions:

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.INTERNET" />
    
Privacy

This SDK collects a user’s App-Set ID for Fraud Prevention purposes. When publishing to the Play Store, disclose the usage of Device Identifiers as follows:

  • Data Types: Device or other IDs
  • Collected: Yes
  • Shared: No
  • Processed Ephemerally: No
  • Required or Optional: Required
  • Purposes: Fraud Prevention
Theming

Using the styles.xml of your app, you can set colors, buttons and more to customize the Persona flow to your own style. Just extend the base Persona style Base.Persona.Inquiry2.Theme and name it Persona.Inquiry2.Theme.

<style name="Persona.Inquiry2.Theme" parent="@style/Base.Persona.Inquiry2.Theme">
    <item name="colorPrimary">#22CB8E</item>
    <item name="colorAccent">#22CB8E</item>
    <item name="colorPrimaryDark">#167755</item>
</style>

and in your InquiryConfiguration set the theme:

...
theme: InquiryTheme(source: InquiryThemeSource.client)
...

Important: Client side theming is deprecated. Themes can be managed in the Dashboard with Persona's visual editor. See the detailed tutorial for more information.

Usage

Starting an Inquiry

To start a Persona inquiry flow, first initialize it with a configuration, then call start:

// Initialize the inquiry
await PersonaInquiry.init(configuration: yourConfiguration);

// Start the inquiry flow
await PersonaInquiry.start();
Disposing an Inquiry

If you need to programmatically close the inquiry flow and clean up resources, use the dispose() method:

await PersonaInquiry.dispose();

This is useful when:

  • You need to cancel an ongoing inquiry from your app's logic
  • You want to clean up resources before starting a new inquiry
  • Your app needs to navigate away while an inquiry is in progress

Note: On iOS, calling dispose() will dismiss the inquiry UI if it's currently presented. On Android, it will clear the inquiry reference.

Listening to Events

Subscribe to inquiry events to handle completion, cancellation, and errors:

// Listen for successful completion
PersonaInquiry.onComplete.listen((InquiryComplete event) {
  print('Inquiry completed: ${event.inquiryId}');
  print('Status: ${event.status}');
  print('Fields: ${event.fields}');
});

// Listen for cancellation
PersonaInquiry.onCanceled.listen((InquiryCanceled event) {
  print('Inquiry canceled: ${event.inquiryId}');
});

// Listen for errors
PersonaInquiry.onError.listen((InquiryError event) {
  print('Inquiry error: ${event.error}');
});

Remember to cancel your stream subscriptions when disposing your widget:

@override
void dispose() {
  _streamComplete.cancel();
  _streamCanceled.cancel();
  _streamError.cancel();
  super.dispose();
}

カテゴリー

依存関係

依存関係一覧 1 件

  • plugin_platform_interface^2.1.2

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。