secverify 1.0.0 copy "secverify: ^1.0.0" to clipboard
secverify: ^1.0.0 copied to clipboard

discontinuedreplaced by: secverify_plugin
outdated

The operator gateway takes the number and verifies the mobile phone number in one second.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:io';
import 'dart:convert';

import 'package:flutter/services.dart';
import 'package:secverify/secverify.dart';
import 'package:http/http.dart' as http;

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _version = "unkown";
  bool _isVerifySupport = true;
  @override
  void initState() {
    super.initState();
    preSettings();
    isVerifySupport();
    if (_isVerifySupport) {
      preVerify();
    }
  }


  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FirstView(_version, _isVerifySupport),

    );
  }

  void preVerify(){
    Secverify.preVerify((Map ret, Map err){
      if(err!=null)
      {
//        showAlert(err.toString(),context);
      }
      else
      {
        String rst = ret.toString();
        if (ret == null || ret.isEmpty) {
          rst = '预登录成功!';
          print(rst);
        }
//        showAlert(rst,context);
      }
    });
  }

  void preSettings() {
    Secverify.submitPrivacyGrantResult(true);
    Secverify.autoFinishOauthPage(false);
    Secverify.setDebugMode(false);
    Secverify.setTimeOut(5000);
    getVersion();
  }

  Future<void> getVersion() async {
    String version;
    version = await Secverify.getVersion;
    setState(() {
      _version = version;
    });

  }

  Future<void> isVerifySupport() async {
    bool isVerifySupport = await Secverify.isVerifySupport;
    setState(() {
      this._isVerifySupport = isVerifySupport;
    });

  }


}

class FirstView extends StatelessWidget{
  String _version;
  bool _isVerifySupport;

  FirstView(this._version, this._isVerifySupport);

  @override
  Widget build(BuildContext context) {
    return
      Scaffold(
        appBar: AppBar(title: Text('SecVerify Flutter'),),
        body: Center(
          child: Column(
            children: <Widget>[
              Container(
                child: RaisedButton(
                  child: Text("默认样式"),
                  onPressed: (){
                    if(_isVerifySupport) {
                      verify(context);
                    } else {
                      showAlert("当前环境不支持", context);
                    }
                  },
                ),
              ),
              Container(
                child: RaisedButton(
                  child: Text("自定义样式"),
                  onPressed: (){
                    preSettings();
                    setPortraitLayout();
                    if(_isVerifySupport) {
                      verify(context);
                    } else {
                      showAlert("当前环境不支持", context);
                    }
                  },
                ),
              ),
              Text(
                "当前版本号: " + _version
              ),
            ],
          ),
        ),
      );
  }

  void preVerify(BuildContext context){
    Secverify.preVerify((Map ret, Map err){
      if(err!=null)
      {
        showAlert(err.toString(),context);
      }
      else
      {
        String rst = ret.toString();
        if (ret == null || ret.isEmpty) {
          rst = '预登录成功!';
        }
        showAlert(rst,context);
      }
    });
  }

  void verify(BuildContext context) {
    Secverify.verify((Map ret, Map err) {
      if (err != null) {
        showAlert(err.toString(), context);
      }
      else {
        String rst = ret.toString();
        if (ret == null || ret.isEmpty) {
          rst = '登录失败';
          showAlert(rst, context);
        } else if(ret.containsKey("opToken")){
          doLogin(ret, context);
        }
      }
      Secverify.finshOauthPage();
    });
  }

  //需要自己实现这部分
  void doLogin(Map ret, BuildContext context) async {
    var optoken = ret.containsKey("opToken") ? ret["opToken"] : "";
    var token = ret.containsKey("token") ? ret["token"] : "";
    var operator = ret.containsKey("operator") ? ret["operator"] : "";
    var phoneOperator = ret.containsKey("phoneOperator") ? ret["phoneOperator"] : "";
    var md5 = ret.containsKey("md5") ? ret["md5"] : "";
    var appkey = ret.containsKey("appkey") ? ret["appkey"] : "";

    var params = Map<String, String>();
    params["opToken"] = optoken;
    params["operator"] = operator;
    params["phoneOperator"] = phoneOperator;
    params["token"] = token;
    params["md5"] = md5;
    params["appkey"] = appkey;

    var header = Map<String, String>();
    header["Content-Type"] = "application/json";

    var client = http.Client();

    var response = await client.post("http://demo.verify.mob.com/demo/sdkLogin", headers: header, body: json.encode(params));
    var _content = response.body;
    print(_content.toString());
    showAlert(_content.toString(), context);
  }

  void showAlert(String text, BuildContext context) {
    showDialog(
        context: context,
        builder: (BuildContext context) => AlertDialog(
            title: new Text("提示"),
            content: new Text(text),
            actions: <Widget>[
              new FlatButton(
                child: new Text("OK"),
                onPressed: () {
                  Navigator.of(context).pop();
                },
              )
            ]));
  }

  void setPortraitLayout() {
    if (Platform.isAndroid) {
      // 以下是 Android 自定义设置
      // 导航栏设置
      var customNav= {
        "navColor": "#F0C3D6",  //导航栏背景颜色
        "navText": "一键登录",   //导航栏文本内容
        "navTextColor": "#ffffff", //导航栏文本颜色
        "navHidden": false, //导航栏是否隐藏
        "navTransparent": false,//导航栏是否透明
        "navCloseImgHidden": false,//导航栏返回图片是否隐藏
        "navTextSize": 16,//导航栏文本大小
        "navTextBold": false,//导航栏文本是否加粗
        "navCloseImgPath": "close.png", //导航栏返回图片地址
        "portraitLayout": {
          "layoutWidth": 50,//导航栏图片宽度
          "layoutHeight": 50,//导航栏图片高度
          "layoutLeft": 10,//导航栏图片左间距
//          "layoutRight": 30,//导航栏图片右间距
//          "layoutTop": 10,//导航栏图片顶部间距
        }
      };
      // 授权页
      var customAuthPage= {
//        "backgroundImg":"bg.png",//授权页面背景图片地址
        "backgroundClickClose": false,//授权页面点击关闭
        "fullScreen": false,//是否全屏
        "immersiveTheme": true, // 是否沉浸式透明状态栏
        "immersiveStatusTextColorBlack": true // 是否修改状态栏意思
      };
      // 授权页Logo
      var customAuthPageLogo= {
        "logoImg": "app_icon.png",//logo地址
        "logoAlignParentRight": false,//logo是否靠页面右侧
        "logoHidden": false,// logo是否隐藏
        "portraitLayout": {
          "layoutWidth": 80,//logo宽度
          "layoutHeight": 80,//logo高度
//          "layoutLeft": 30,//logo左间距
//          "layoutRight": 30,//logo右间距
          "layoutTop": 30,//logo顶部间距
//          "layoutBottom": 30,//logo底部间距
        }
      };

      // 手机号码
      var customPhoneNumber= {
        "numberColor":"#FFCC00",// 脱敏手机号颜色
        "numberSize":20,//脱敏手机号大小
        "numberAlignParentRight":false,//脱敏手机号是否靠页面右侧
        "numberHidden":false,//脱敏手机号是否隐藏
        "numberBold":false,//脱敏手机号字体是否加粗
        "portraitLayout": {
//          "layoutLeft": 30,//脱敏手机号左间距
//          "layoutRight": 30,//脱敏手机号右间距
          "layoutTop": 130,//脱敏手机号顶部间距
//          "layoutBottom": 30,//脱敏手机号底部间距
        }
      };

      // 切换帐号按钮
      var customSwitchNumber= {
        "switchAccColor": '#FFCC00',//切换登录文本颜色
        "switchAccTextSize": 16,//切换登录文字大小
        "switchAccHidden": false,//切换登录是否隐藏
        "switchAccAlignParentRight": false,//切换登录是否靠屏幕右侧
        "switchAccText": '选择其他方式登录',//切换登录文本内容
        "switchAccTextBold": false,//切换登录文本是否加粗
        "portraitLayout": {
//          "layoutLeft": 30,//切换登录左间距
//          "layoutRight": 30,//切换登录右间距
          "layoutTop": 170,//切换登录顶部间距
//          "layoutBottom": 30,//切换登录底部间距
        }
      };

      // 登陆按钮设置
      var customLoginBtn= {
        "loginBtnImgArr": ["ffffff","000000"],//登录按钮背景图片或者颜色
        "loginBtnText": "登录",//登录按钮文本
        "loginBtnTextColor": "#F1C4A8",//登录按钮文字颜色
        "loginBtnTextSize": 16,//登录按钮文本大小
        "loginBtnOffsetRightX": false,//登录按钮右间距
        "loginBtnAlignParentRight": false,//登录按钮是否靠屏幕右侧
        "loginBtnHidden": false,//登录按钮是否隐藏
        "loginBtnTextBold": false,//登录按钮文本是否加粗
        "portraitLayout": {
          "layoutWidth": 200,//登录按钮宽度
          "layoutHeight": 45,//登录按钮高度
//          "layoutLeft": 30,//登录按钮左间距
//          "layoutRight": 30,//登录按钮右间距
          "layoutTop": 200,//登录按钮顶部间距
//          "layoutBottom": 30,//登录按钮底部间距
        }
      };

      // 隐私条款设置(切记,不可隐藏)
      var customPrivacy= {
        "agreementColor": "#00FFDD",//运营商隐私条款颜色和自定义隐私条款文本颜色
        "agreementBaseTextColor": "#330F33",//隐私条款其他文字颜色
        "agreementTextSize": 16,//隐私条款文字大小
        "agreementTextStart": "登录即同意",//隐私条款开头文本
        "agreementTextEnd": "并授权获取本机号码",//隐私条款结束文本
        "agreementAlignParentRight": false,//隐私条款是否靠屏幕右侧
        "agreementHidden": false,//隐私条款是否隐藏
        "agreementCmccText": "《中国移动服务协议》",//隐私条款 移动运营商显示文本
        "agreementCuccText": "《中国联通服务协议》",//隐私条款 联通运营商显示文本
        "agreementCtccText": "《中国电信服务协议》",//隐私条款 电信运营商显示文本
        "agreementTextBold": false,//隐私条款文本是否加粗
        "agreementTextWithUnderLine": false,//隐私条款是否带下划线
        "cusAgreementFirstArray": ['服务协议',
          'https://gitee.com/',
          '、'],//隐私条款 自定义一
        "cusAgreementSecondArray": ['百度协议',
          'https://www.baidu.com',
          '和'],//隐私条款 自定义二
        "cusAgreementThirdArray": ['隐私条款',
          'https://gitee.com/',
          '、'],//隐私条款 自定义三
        "agreementUncheckHintText": "请阅读并勾选隐私协议",//隐私条款 未勾选时提示的文本
        "portraitLayout": {
          "layoutLeft": 20,//隐私条款左间距
          "layoutRight": 20,//隐私条款右间距
          "layoutTop": 270,//隐私条款顶部间距
//          "layoutBottom": 20,//隐私条款底部间距
        }
      };

      // 隐私条款复选框
      var customCheckBox= {
        "checkboxImg":["checked.png","uncheck.png"],    // 隐私协议checkbox背景图片
        "checkboxDefaultState":true,    // 隐私协议checkbox默认状态
        "checkboxHidden":false,//隐私协议checkbox是否隐藏
        "scale": 1.5,
        "portraitLayout": {
          "layoutWidth": 50,//隐私协议checkbox 返回图标宽度
          "layoutHeight": 50,//隐私协议checkbox 返回图标高度
//          "layoutLeft": 20,//隐私协议checkbox左间距
//          "layoutRight": 20,//隐私协议checkbox右间距
//          "layoutTop": 10,//隐私协议checkbox顶部间距
//          "layoutBottom": 20,//隐私协议checkbox底部间距
        }

      }
      ;
      // 隐私条款具体协议内容页面设置
      var customPrivacyContentPage= {
        "agreementPageTitle": "隐私协议页",//隐私协议页面 标题
        "cusAgreementPageOneTitle": "自定义隐私协议页一",//隐私协议页面 自定义隐私协议一标题
        "cusAgreementPageTwoTitle": "自定义隐私协议页二",//隐私协议页面 自定义隐私协议二标题
        "cusAgreementPageThreeTitle": "自定义隐私协议页三",//隐私协议页面 自定义隐私协议三标题
        "agreementPageCloseImg": "close.png",//隐私协议页面 返回图标名称
        "agreementPageTitleTextSize": 16,//隐私协议页面 标题文本大小
        "agreementPageTitleTextColor": "#330F33",//隐私协议页面  标题文本颜色
        "agreementPageTitleTextBold": true,//隐私协议页面 标题文本是否加粗
        "agreementPageTitleHidden": false,//隐私协议页面 标题文本是否隐藏
        "agreementPageCloseImgHidden": false,//隐私协议页面 返回图标是否隐藏
        "portraitLayout": {
          "layoutWidth": 50,//隐私协议页面 返回图标宽度
          "layoutHeight": 50,//隐私协议页面 返回图标高度
        }
      };

      // 运营商品牌标签
      var customOperatorSlogan= {
        "sloganTextSize": 20,// Slogan文本大小
        "sloganTextColor": "#330F33",// Slogan文本颜色
        "sloganHidden": false,// Slogan是否隐藏
        "sloganAlignParentRight": false,// Slogan是否靠屏幕右侧
        "sloganTextBold": true,// Slogan文本是否加粗
        "portraitLayout": {
//          "layoutLeft": 30,//Slogan左间距
//          "layoutRight": 30,//Slogan右间距
//          "layoutTop": 30,//Slogan顶部间距
          "layoutBottom": 30,//Slogan底部间距
        }
      };

      // 弹窗设置
      var customDialog= {
        "dialogTheme": false,//弹框
        "dialogAlignBottom": false,//弹框是否靠底部
        "dialogOffsetX": 30,//弹框横屏距两边的间距
        "dialogOffsetY": 30,//弹框竖屏距上下的间距
        "dialogWidth": 250,//弹框宽度
        "dialogHeight": 400,//弹框高度
//        "dialogBackground": "bg.png",//弹框蒙版背景图片名称
        "dialogBackgroundClickClose": false,//弹框蒙版背景是否点击关闭
        "portraitLayout": {
          "layoutWidth": 250,//弹框宽度
          "layoutHeight": 400,//弹框高度
          "layoutLeft": 30,//弹框左间距
          "layoutTop": 30,//弹框顶部间距
        }

      }
      ;
      // 自定义控件设置,目前安卓只支持文本TextView和图片ImageView
      var customView= {
        "customView": [ {
          "viewClass": "TextView",//添加的控件类型
          "viewText": "测试文本1",// 控件文本
          "viewTextColor": "#330F33",// 控件文本颜色
          "viewTextFont": 20,// 控件文本大小
          "viewTextBold": true,// 控件文本是否加粗
          "viewAlignParentRight":false,// 控件是否靠屏幕右侧
          "viewHorizontalCenter":true,//控件是否靠屏幕中间
          "portraitLayout": {
//            "layoutLeft": 30,//控件左间距
//            "layoutRight": 30,//控件右间距
//            "layoutTop": 30,//控件顶部间距
            "layoutBottom": 135,//控件底部间距
          }
        },
          {
            "viewClass": "TextView",//添加的控件类型
            "viewText": "测试文本2",// 控件文本
            "viewTextColor": "#330F33",// 控件文本颜色
            "viewTextFont": 16,// 控件文本大小
            "viewTextBold": false,// 控件文本是否加粗
            "viewAlignParentRight":false,//控件是否靠屏幕右侧
            "viewHorizontalCenter":true,//控件是否靠屏幕中间
            "portraitLayout": {
//              "layoutLeft": 30,//控件左间距
//              "layoutRight": 30,//控件右间距
//              "layoutTop": 50,//控件顶部间距
              "layoutBottom": 115,//控件底部间距
            },
          },
          {
            "viewClass": "ImageView",//添加的控件类型
            "viewImg": "logo.png",//图片的地址
            "viewAlignParentRight":false,//控件是否靠屏幕右侧
            "viewHorizontalCenter":true,//控件是否靠屏幕中间
            "portraitLayout": {
              "layoutWidth": 30,//隐私协议页面 返回图标宽度
              "layoutHeight": 30,//隐私协议页面 返回图标高度
//              "layoutLeft": 30,//控件左间距
//              "layoutRight": 30,//控件右间距
//              "layoutTop": 50,//控件顶部间距
              "layoutBottom": 75,//控件底部间距
            },
          }
        ]
      };
      var customParams = {
        'customNav': customNav,//导航栏设置
        'customAuthPage': customAuthPage,//授权页面设置
        'customAuthPageLogo': customAuthPageLogo,//logo设置
        'customPhoneNumber': customPhoneNumber,//脱敏手机号设置
        'customSwitchNumber': customSwitchNumber,//切换登录设置
        'customCheckBox': customCheckBox,//复选框设置
        'customPrivacy': customPrivacy,//隐私条款设置
        'customPrivacyContentPage': customPrivacyContentPage,//隐私协议页面设置
        'customLoginBtn': customLoginBtn,//登录按钮设置
        'customOperatorSlogan': customOperatorSlogan,//slogan设置
        'customDialog': customDialog,//弹框设置
        'customView': customView,//自定义控件设置
      };
      Secverify.setPortraitLayout(customParams);
      Secverify.setLandscapeLayout(customParams);
    } else if (Platform.isIOS) {
      // 以下是 iOS 自定义设置
					// 自定义动画设置
					var customAnimation = {
						'secAnimateType': 1, //动画类型 0:默认 1:水平翻转 2:淡入淡出 3: Alert 4: Push 5:sheet
						// 'secShowType': 0, //展示类型 0:默认 1:Alert 2:Push 3: Sheet
						// 以下自定义动画设置只针对于Alert/Sheet展示类型
						'secAnimateBgColor': '#F7B376', //弹窗控制器的背景色
						'secLeftControlImage': 'leftImg.png', //左边按钮背景图片名称
						'secLeftControlHidden': true, //左边按钮是否显示
						'secRightControlImage': 'rightImg.png', //右边按钮背景图片名称
						'secRightControlHidden': true, //右边按钮是否显示
						'secBgViewHidden': false, //背景视图是否展示
						'secBgViewCorner': 15, //背景视图的圆角
						'secBgViewColor': '#000000', //背景视图颜色
						'secBgViewImage': 'bgImg.png', //背景视图的背景图片名称
						'secCloseType': true, //关闭按钮显示在左边还是右边 true:左边 false:右边
					};
					// 导航栏设置
					var customNav = {
						'secNavBarTintColor': '#F0C3D6', //  导航栏背景色(default is white)
						'secNavText': '一键验证', // 导航栏标题
						// 'secNavReturnImg': 'close.png', // 导航栏返回按钮图标
						// 'secNavBottomLineHidden': true, // 是否隐藏导航栏尾部线条(默认显示,例: true)
						// 'secNavBarHidden': false, // 导航栏隐藏(例: false)
						// 'secNavStatusBarHidden': false, // 导航栏状态栏隐藏(例: false)
						// 'secNavTranslucent': false, // 导航栏透明(例: false)
						// 'secNavBackBtnHidden': false, // 导航栏返回按钮隐藏(例: false)
						// 'secNavLeftControlHidden': false, // 隐藏导航栏左边按钮
						'secNavTintColor': '#FF0000', //  导航栏文字颜色
						// 'secNavBackgroundClear': false, //  导航栏背景透明(例: false)
					};
					// 授权页
					var customAuthPage = {
						// 'secBackgroundColor': '#E5E589', // 授权页背景颜色
						'secBgImg': 'bg.png', // 授权背景图片
						'secCancelBySingleClick': false, //单击页面实现取消操作(例: false)
					};
					// 授权页Logo
					var customAuthPageLogo = {
						'secLogoImg': 'app_icon.png', // Logo图片名称
						'secLogoHidden': false, // Logo是否隐藏(例: false)
						'secLogoCornerRadius': 10, // Logos圆角(例: 10)
						'secPortraitLayout': {
							// 针对该控件的竖屏布局(注意: 每个控件的布局字段所表示的含义都相同,下面将不再解释)
							'secLayoutTop': 100, // 顶部间距
							// 'secLayoutBottom': -40,    // 底部间距
							'secLayoutLeft': 20, // 左边间距
							// 'secLayoutRight': -20,     // 右边间距
							'secLayoutWidth': 80, // 控件宽度
							'secLayoutHeight': 80, // 控件高度
							// 'secLayoutCenterX': 0,     // 相对于父视图的CenterX的偏移量,0表示不偏移,即水平居中
							// 'secLayoutCenterY': 0,     // 相对于父视图的CenterY的偏移量,0表示不偏移,即垂直居中
						},
					};
					// 手机号码
					var customPhoneNumber = {
						'secNumberColor': '#FFCC00', // 手机号码字体颜色
						'secNumberFont': 18, // 字体大小(例: 18)
						'secNumberTextAlignment': 1, // 手机号对其方式(例: 0-Left, 1-Center, 2-Right)
						'secNumberBgColor': '#C2F6A3', // 手机号码背景颜色
						'secPhoneHidden': false, //手机号码是否隐藏
						'secPhoneBorderColor': '#FF0000', //手机号码边框颜色
						'secPhoneBorderWidth': 2, //手机号码边框宽度
						'secPhoneCorner': 5, //手机号码圆角
						'secPortraitLayout': {
							'secLayoutTop': 100 + 10,
							'secLayoutLeft': 20 + 80 + 15,
							'secLayoutRight': -20,
							'secLayoutHeight': 22, // 控件高度
						}
					};
					// 切换帐号按钮
					var customSwitchNumber = {
						'secSwitchBgColor': '#F1DBC9', // 切换账号背景颜色
						'secSwitchColor': '#FF0000', // 切换账号字体颜色
						'secSwitchFont': 14, // 切换账号字体大小
						'secSwitchTextHorizontalAlignment': 0, // 切换账号对其方式(例: 0-Center, 1-Left, 2-Right)
						'secSwitchHidden': false, // 隐藏切换账号按钮, 默认为false(例: true)
						'secSwitchText': '切换手机号', // 切换账号标题
						'secPortraitLayout': {
							'secLayoutTop': 100 + 80 - 30,
							'secLayoutLeft': 20 + 80 + 15,
							'secLayoutRight': -20,
							'secLayoutHeight': 18, // 控件高度
						}
					};
					// 登陆按钮设置
					var customLoginBtn = {
						'secLoginBtnText': '登陆', // 登录按钮文本
						'secLoginBtnTextColor': '#F1C4A8', // 登录按钮文本颜色
						'secLoginBtnBgColor': '#C3D6F1', // 登录按钮背景颜色
						'secLoginBtnBorderWidth': 2.0, // 登录按钮边框宽度 (例: 2.0)
						'secLoginBtnBorderColor': '#FFCC00', // 登录按钮边框颜色
						'secLoginBtnCornerRadius': 5.0, // 登录按钮圆角(例: 5.0)
						'secLoginBtnTextFont': 20, // 登录按钮文字字体大小
						'secLoginBtnBgImgArr': [
							'#FF0000',
							'#00FF00',
							'0000FF'
						], //['enabled.png', 'disabled.png', 'highlighted.png'], // 登录按钮背景图片数组(例:['激活状态图片','失效状态图片','高亮状态图片'], 支持颜色数组: ['#FF0000', '#00FF00', '0000FF'])
						'secLoginBtnHidden': false, // 登陆按钮是否隐藏, 不建议隐藏!!!
						'secPortraitLayout': {
							'secLayoutCenterY': 0,
							'secLayoutLeft': 20,
							'secLayoutRight': -20,
							'secLayoutHeight': 30, // 控件高度
						}
					};
					// 隐私条款设置(切记,不可隐藏)
					var customPrivacy = {
						'secPrivacyTextColor': '#00FFDD', // 隐私条款基本文字颜色
						'secPrivacyTextFont': 16, // 隐私条款协议文字字体大小
						'secPrivacyTextAlignment': 0, // 隐私条款对其方式(例: 0-Left, 1-Center, 2-Right)
						'secPrivacyAgreementColor': '#DDAA00', // 隐私条款协议文字颜色
						'secPrivacyAgreementBgColor': '#000000', // 隐私条款协议背景颜色
						'secPrivacyAppName': '秒验Flutter', // 隐私条款应用名称
						'secPrivacyProtocolMarkArr': ['《','》'], // 协议文本前后符号(例['<','>'])
						'secPrivacyFirstTextArr': ['服务协议',
							'https://gitee.com/',
							'、'
						], // 开发者隐私条款第一组协议(例:['名字','url','分割符'])
						'secPrivacySecondTextArr': ['百度协议',
							'https://www.baidu.com',
							'、'
						], // 开发者隐私条款第二组协议(例:['名字','url','分割符'])
						'secPrivacyLineSpacing': 5.0, // 隐私条款多行时行距(例: 5.0)
						// 'secPrivacyDefaultText': '开发者隐私条款', //开发者隐私条款协议默认名称(不建议修改)
						'secPrivacyUnderlineStyle': 1, //隐私协议下划线样式(例: 0-None, 1-Single, 2-Thick, 9-Double)
						'secPrivacyNormalTextFirst': '登录即同意', // 隐私条款开头(例: '登录即同意')
						'secPrivacyNormalTextEnd': '并授权秒验FlutterApp获取本机号码', // 隐私条款中间连接文字(例: '并授权')
						'secPrivacyHidden': false, // 隐私条款是否隐藏, 强烈建议不要隐藏!!!
						'isPrivacyOperatorsLast': false, // 运营商协议是否排在最后 默认为false(例: true)
						'secPortraitLayout': {
							'secLayoutLeft': 50,
							'secLayoutCenterY': 80,
							'secLayoutRight': -20,
							'secLayoutHeight': 70, // 控件高度
						}
					};
					// 隐私条款复选框
					var customCheckBox = {
						'secCheckedImg': 'checked.png', // 复选框选中时的图片
						'secUncheckedImg': 'uncheck.png', // 复选框未选中时的图片
						'secCheckDefaultState': false, // 隐私条款check框默认状态,默认为false(例: true)
						// secCheckSize: 30, // 复选框尺寸(宽高相同,例: 30)
						'secCheckHidden': false, // 隐私条款check框是否隐藏,默认为false(例: true)
						'secPortraitLayout': {
							// !!!! 注意: 这个复选框的布局是相对于隐私条款的,所以建议先把隐私条款布局好再布局这个框
							'secLayoutRight': -10,
							'secLayoutCenterY': -20,
							'secLayoutWidth': 20,
							'secLayoutHeight': 20,
						}
					};
					// 隐私条款具体协议内容页面设置
					var customPrivacyContentPage = {
						'secPrivacyWebBackBtnImage': 'close.png', // 隐私条款WEB页面返回按钮图片
						'secPrivacyWebTitle': '隐私条款内容', // 隐私条款WEB页面标题
						'secPrivacyWebNavBarStyle': 0, // 隐私条款导航style (例: 0-Default, 1-Black)
					};
					// 运营商品牌标签
					var customOperatorSlogan = {
						'secSloganTextFont': 13, //运营商品牌文字字体大小
						'secSloganTextColor': '#0099FF', //运营商品牌文字颜色
						'secSloganTextAlignment': 1, //运营商品牌文字对齐方式(例: 0-Left, 1-Center, 2-Right)
						'secSloganBgColor': '#666666', //运营商品牌背景颜色
						// 'secSloganText': '运营商品牌文字', //运营商品牌文字(不建议修改)
						'secSloganHidden': false, //运营商品牌是否隐藏
						'secSloganBorderColor': '#FFEEDD', //运营商品牌边框颜色
						'secSloganBorderWidth': 2.0, //运营商品牌边框宽度
						'secSloganCorner': 5.0, //运营商品牌边框圆角
						'secPortraitLayout': {
							'secLayoutLeft': 20,
							'secLayoutRight': -20,
							'secLayoutBottom': -64,
							'secLayoutHeight': 18, // 控件高度
						},
					};
					var customParams = {
						'customAnimation': customAnimation,
						'customNav': customNav,
						'customAuthPage': customAuthPage,
						'customAuthPageLogo': customAuthPageLogo,
						'customPhoneNumber': customPhoneNumber,
						'customSwitchNumber': customSwitchNumber,
						'customCheckBox': customCheckBox,
						'customPrivacy': customPrivacy,
						'customPrivacyContentPage': customPrivacyContentPage,
						'customLoginBtn': customLoginBtn,
						'customOperatorSlogan': customOperatorSlogan,
					};
          Secverify.setPortraitLayout(customParams);
          // Secverify.setLandscapeLayout(customParams);
    }

  }

  void preSettings() {
    Secverify.autoFinishOauthPage(false);
  }
}
2
likes
0
pub points
0%
popularity

Publisher

unverified uploader

The operator gateway takes the number and verifies the mobile phone number in one second.

Homepage

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on secverify