jverify 3.2.0 copy "jverify: ^3.2.0" to clipboard
jverify: ^3.2.0 copied to clipboard

JIGUANG Official Jverifycation SDK flutter plugin project.

QQ Group

JVerify Flutter Plugin #

极光 JVerification Flutter 插件,支持 Android、iOS 和 HarmonyOS。

平台 原生 SDK 最低要求
Android JVerification Android SDK 以 Android 工程配置为准
iOS JVerification iOS SDK iOS 15.0+
HarmonyOS @jg/verify 1.2.2 Flutter-OH 3.22.3-ohos、HarmonyOS SDK 5.0.0(12)+

安装 #

dependencies:
  jverify: ^3.2.0

开发分支也可直接使用 Git:

dependencies:
  jverify:
    git:
      url: https://github.com/jpush/jverify-flutter-plugin.git
      ref: dev-3.x

Android #

在应用的 android/app/build.gradle 中配置应用 AppKey 和 channel:

android {
  defaultConfig {
    manifestPlaceholders = [
      JPUSH_PKGNAME: applicationId,
      JPUSH_APPKEY: "你的 AppKey",
      JPUSH_CHANNEL: "developer-default",
    ]
  }
}

iOS #

3.1.9 起支持 Swift Package Manager 和 CocoaPods,最低 iOS 版本均为 15.0。首次拉取、flutter clean 或重新 flutter pub get 后,从 Xcode 启动前执行:

cd example
flutter pub get
flutter build ios --config-only
open ios/Runner.xcworkspace

不要提交 ios/Flutter/ephemeral/;该目录由 Flutter 生成。

HarmonyOS #

1. 工具链 #

普通 Flutter SDK 不支持 flutter create --platforms ohos。开发和构建 HarmonyOS 必须使用 Flutter-OH;FLUTTER_OH_HOME 只是本文建议的自定义变量,值应指向实际 Flutter-OH SDK 根目录,而不是 DevEco Studio 或项目目录。

macOS 示例:

export FLUTTER_OH_HOME="/path/to/flutter_flutter"
export TOOL_HOME="/Applications/DevEco-Studio.app/Contents"
export HOS_SDK_HOME="$TOOL_HOME/sdk"
export DEVECO_SDK_HOME="$TOOL_HOME/sdk"
export NODE_HOME="$TOOL_HOME/tools/node"
export PATH="$TOOL_HOME/tools/node/bin:$TOOL_HOME/tools/ohpm/bin:$TOOL_HOME/tools/hvigor/bin:$FLUTTER_OH_HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

保留 /usr/bin:/bin,否则 ohpm 脚本会找不到 seddirnameuname。可把上述内容写入当前 shell 对应的 ~/.zshrc~/.bash_profile

验证:

flutter --version
flutter doctor -v
ohpm --version

2. 宿主工程要求 #

HarmonyOS 1.2.2 的移动认证页强制依赖已挂载的 Navigation/NavPathStack。宿主 example/ohos/entry/src/main/ets/pages/Index.ets 展示了接入方式:

@Provide('jverifyNavPathStack') navPathStack: NavPathStack = new NavPathStack();

aboutToAppear(): void {
  JverifyNavigation.attachNavPathStack(this.navPathStack, this);
}

build() {
  Navigation(this.navPathStack) {
    FlutterPage({ viewId: this.viewId });
  }
}

仅在插件内部创建但没有挂载到 Navigation 的栈不可用。插件在 loginAuth 前会检查宿主栈,缺失时返回结构化错误,不会伪造导航栈。

还需要:

  • 在极光控制台创建与 HarmonyOS bundleName 对应的应用并使用其 AppKey。
  • example/ohos/entry/src/main/module.json5 配置网络权限。
  • 在 DevEco Studio 为自己的 bundleName 配置本地调试签名;证书、profile 和密码不得提交。
  • UI 图片使用 HarmonyOS media 资源名,不要传本机绝对路径。

3. 构建 example #

命令必须在 Flutter example 根目录执行,而不是在插件 ohos/ module 内执行:

cd example
flutter clean
# 当前 Flutter-OH 的 clean 不会删除旧的插件 HAR;ArkTS 改动后应显式删除
rm -f ohos/har/jverify.har
flutter pub get
flutter build hap --debug
# 或连接设备后
flutter run

Flutter-OH 会先把根插件的 ohos/ 编译成 HAR,再把 jverify.harflutter.har 放到 example 的 ohos/har/ 中,最后由 Hvigor 构建 HAP。本次实测该 Flutter-OH 版本的 flutter clean 不会删除旧 jverify.har;修改 ArkTS 后应先删除这一个可重建文件,避免旧 HAR 被继续引用。HAR、HAP、oh_modules.hvigor 都是生成物,不应提交。

如果同一工作区刚被普通 Flutter SDK 执行过 pub get/test/analyze,应在 HarmonyOS 构建前重新使用 Flutter-OH 执行 flutter pub get,避免 .dart_tool/package_config.json 指向另一套 Flutter SDK。

4. 能力说明 #

HarmonyOS 已实现初始化、网络检查、取 token、预取号、缓存管理、一键登录、授权页关闭和授权页事件。UI 按运营商明确区分:中国移动使用独立 UI Builder,联通/电信使用通用 UI Builder;中国移动特有属性、自定义登录页/文字/图片按钮通过类型化 JVHarmonyCMUIConfig 配置,其中 numberWidth/numberHeight 可配合对齐规则控制号码节点尺寸,systemBar 可设置透明状态栏和内容颜色。JVCustomWidget 会转换成受控 ArkUI TextButtonImage,可用于通用授权页和隐私二次弹窗;图片支持 media 资源名或 URI/base64,按钮和图片均保留 widget ID 点击回调。通用控件使用 harmonyToastText、移动自定义登录页控件使用 toastText 提供原生 Toast 反馈;图片 Button 支持透明背景。未显式配置安全区时,插件自动读取 HarmonyOS 系统避让区。各字段的最终支持范围见 documents/APIs.md

HarmonyOS 原生 SDK 目前没有短信验证码/短信登录以及 setCollectionAuth 对应能力。为保持 Flutter 公共 API 一致,这些入口仍可调用:Future/callback 接口返回 code = -2,void 接口输出 warning 并正常结束,不会伪造成功。

使用 #

import 'package:jverify/jverify.dart';

final jverify = Jverify();
jverify.setDebugMode(true);
jverify.setup(appKey: '你的 AppKey', channel: 'developer-default');

完整 API 和 UI 字段说明见 documents/APIs.md,可运行调用顺序见 example/lib/main.dart。

官方资料 #

20
likes
135
points
1.15k
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

JIGUANG Official Jverifycation SDK flutter plugin project.

Homepage

License

MIT (license)

Dependencies

flutter

More

Packages that depend on jverify

Packages that implement jverify