Skip to content

GetuiLaboratory/getui-gysdk-flutter

Repository files navigation

1、引用

Pub.dev: https://pub.dev/packages/gyflut

增加依赖: flutter pub add gyflut

或者手动在工程 pubspec.yaml 中加入 dependencies:

dependencies:
  gyflut: ^0.0.8

下载依赖:

flutter pub get
flutter run

2、配置

2.1 Android配置

2.1.1 app的build.gradle配置

到个推官网申请appID、配置签名文件

defaultConfig {
        applicationId "自己填"
        //.......
        manifestPlaceholders = [
                GETUI_APPID         : "自己填",//请填写开发者在 https://dev.getui.com/ 申请的GETUI_APPID
                GT_INSTALL_CHANNEL: "getui",//请填写开发者需要的channel
        ]
    }
signingConfigs {
        myConfig {
            storeFile file("自己填")//请换成开发者自己的签名配置
            keyAlias '自己填'
            keyPassword '自己填'
            storeFile file('../自己填')
            storePassword '自己填'
        }
    }

    buildTypes {
        debug {
            minifyEnabled false
            signingConfig signingConfigs.myConfig
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        //..........
        }

配置依赖,最新版本见官网: https://docs.getui.com/geyan/mobile/android/init/

dependencies {
    //-----集成个验SDK-----
    //一键认证sdk
    implementation 'com.getui:gysdk:3.2.0.0'
    //个推公共库,如已接其他个推sdk则保留一个最高版本即可
    implementation 'com.getui:gtc:3.2.18.0'
}
2.1.2 project的build.gradle配置
allprojects {
    repositories {
        maven {
           //仓库配置
            url "https://mvn.getui.com/nexus/content/repositories/releases/"
        }
       //....
    }
}

2.2 IOS配置

在你项目的main.dart中添加下列代码:

/// preLoginUseCache:预登录是否使用缓存,默认为true
/// debug:是否开启SDK的debug模式,默认false
/// operatorDebug:是否开启运营商的debug模式,默认false
/// appId: appid(ios)
/// preLoginTimeout: 预登录超时时长(ios)
/// eloginTimeout:登录超时时长(ios)
 Gyflut().initGySdk(true, true, false, "5xpxEg5qvI9PNGH2kQAia2");

2.3 ohos配置

  • 使用鸿蒙定制版 Flutter,下载地址: OpenHarmony Flutter使用教程
  • ohos工程需要兼容字节码包,在项目级build-profile.json5:
  • ohos工程需要配置正确的签名信息,在项目级build-profile.json5:
    "products": [
      {
        "name": "default",
        "signingConfig": "签名信息",
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {
          "strictMode": {
            "useNormalizedOHMUrl": true
          }
        }
      }
    ],

2.4 ohos UI配置

ohos需要原生UI的配置项,参考demo中Index.ets 和 EntryAbility.ets

//--------------entryAbility类-------------------
 private  static  entryAbility :EntryAbility|null

  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    EntryAbility.entryAbility = this
    super.onCreate(want, launchParam)
  }

    public  static  getInstanse(): EntryAbility|null {
       return EntryAbility.entryAbility
    }

    onDestroy(): void {
      super.onDestroy()
      EntryAbility.entryAbility = null
    }
//----------------Index类-----------------
private readonly  dialogController: CustomDialogController //省略 ......

aboutToAppear(): void {
//使用弹框模式
//this.config.setWindowMode(this.dialogController)
//this.config.setLogoMargin({ top: 50 })

let  plugin : GysdkFlutterPlugin =   EntryAbility.getInstanse()?.getFlutterEngine()?.getPlugins()?.get(new GysdkFlutterPlugin().getUniqueClassName()) as GysdkFlutterPlugin
plugin.config = this.config
}

配置 module.json5

在项目中配置:

    "requestPermissions": [
      {"name" :  "ohos.permission.INTERNET"},
    ],
    "metadata": [
      {
        "name": "GETUI_APPID",
        "value": '你的appid',
      },
      {
        "name": "GT_INSTALL_CHANNEL",
        "value": 'CHANNEL'
      }]
}

3、使用

import 'package:gyflut/gyflut.dart';

3.1 API

/**
* 初始化
* preLoginUseCache:预登录是否使用缓存,默认为true
* debug:是否开启SDK的debug模式,默认false
* operatorDebug:是否开启运营商的debug模式,默认false
* appId: appid(ios)
* preLoginTimeout: 预登录超时时长(ios)
* eloginTimeout:登录超时时长(ios)
*/
Gyflut().initGySdk( true, true, false, "5xpxEg5qvI9PNGH2kQAia2");


//预登录
 Gyflut().ePreLogin();

//预登录是否有效
 bool? isPreLoginResultValid = await Gyflut().isPreLoginResultValid();

//预登录信息
Map<dynamic, dynamic>? getPreLoginResult = await Gyflut().getPreLoginResult();

//登录
Gyflut().login();

//关闭弹框(仅ohos)
Gyflut().closeAuthLoginPage()

3.2 Android demo

https://github.com/GetuiLaboratory/getui-flutter-plugin/tree/master/example

demo.png

3.3 IOS demo

https://github.com/GetuiLaboratory/getui-flutter-plugin/tree/master/example

demo

3.4 ohos demo

https://github.com/GetuiLaboratory/getui-flutter-plugin/tree/master/example ohos.jpeg

About

个推官方提供的个验SDK Flutter 插件

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published