极验OnePass Flutter插件

因为工作上需要用到极验OnePass认证,但是没有找到相关的Flutter插件,于是乎手动撸了一个Flutter版的OnePass插件

集成插件

dependencies
  flutter_one_pass: ^latest version

Android端

无需任何操作

iOS端

无需任何操作

使用文档

Android

  • 导入包

    import 'package:flutter_one_pass/flutter_one_pass.dart' as flutterOnePass;
    
  • 初始化sdk

参数 参数类型 必填 描述
appId String appId
bool status = await flutterOnePass.init(appId: "your appId");

注意:务必在页面销毁的时候释放SDK引用

bool status = await flutterOnePass.destroy();
  • 验证手机号码
参数 参数类型 必填 描述
phone String 手机号码
cacheNumber bool 是否缓存手机号码
flutterOnePass.checkMobile(phone: phone, cacheNumber: true);
  • 监听验证结果

    @override
    void initState() {
      super.initState();
      flutterOnePass.response.listen((reponse) {
        flutterOnePass.CheckResultResponse res = response as flutterOnePass.CheckResultResponse;
      });
    }
    

其他接口

  • 获取最近缓存的一条手机号码

    String number = await flutterOnePass.getCachedNumber;
    
  • 获取匹配的手机号码

参数 参数类型 必填 描述
number String 待搜索的字符串
List numbers = await flutterOnePass.getCachedNumbers(number: "search number");

iOS

  • 导入包

    import 'package:flutter_one_pass/flutter_one_pass.dart' as flutterOnePass;
    
  • 初始化sdk

参数 参数类型 必填 默认参数 描述
appId String null appId
enableCachePhoneNumber bool true 是否允许缓存手机号码
timeout Double 10.0 接口超时
flutterOnePass.setup(appId: "your appId", enableCachePhoneNumber: true, timeout: 10.0);
  • 验证手机号码
参数 参数类型 必填 描述
phone String 手机号码
bool status = flutterOnePass.checkMobile(phone: phone);
  • 监听验证结果

    @override
    void initState() {
      super.initState();
      flutterOnePass.response.listen((reponse) {
        flutterOnePass.CheckResultResponse res = response as flutterOnePass.CheckResultResponse;
      });
    }
    

其他接口

  • 获取最近缓存的一条手机号码

    String number = await flutterOnePass.getCachedNumber;
    
  • 获取缓存的手机号码列表

    List numbers = await flutterOnePass.getIosCachedNumbers;
    

    由于SDK原因,iOS端不支持模糊搜索缓存的手机号码列表

验证结果字典

参数 参数类型 描述
errorCode Int 错误码(为0表示验证通过,其他表示验证不通过)
errorInfo String 错误描述
processId String processId
accesscode String accesscode
phone String 手机号码

验证通过之后,需要将 processIdaccesscodephone发送到后台进行验证

Github

flutter_one_pass

欢迎star,欢迎fork

补充

近来有人疑惑重复监听的问题。这里说明一下,listen方法会返回一个 StreamSubscription对象,在页面 dispose的时候调用 StreamSubscriptioncancel方法即可

demo

StreamSubscription? responseListen;

@override
void initState() {
  super.initState();
  responseListen = flutterOnePass.response.listen((reponse) {
    flutterOnePass.CheckResultResponse res = response as flutterOnePass.CheckResultResponse;
  });
}

@override 
dispose() {
  super.dispose();
  responseListen?.cancel();
}

原文地址

你可能感兴趣的:(极验OnePass Flutter插件)