분류, 패키지 및 저장소 검색

패키지 상세v4.0.1

persona_flutter

Flutter용 페르소나 문의. iOS 및 Android의 네이티브 v2 SDK를 통합합니다.

AndroidiOS
30일 다운로드
3.4천
좋아요
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 및 안드로이드용 플러터 사용 개발자

고려 사항

  • 유효한 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

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.