# getuiflut **Repository Path**: code1993/getuiflut ## Basic Information - **Project Name**: getuiflut - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-05 - **Last Updated**: 2021-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Getui Flutter Plugin ### 引用 在工程 pubspec.yaml 中加入 dependencies ```yaml dependencies: getuiflut: ^0.2.11 ``` Pub.dev: getui-flutter-plugin ### 配置 ### Android: #### 1.添加相关配置: 在 `/android/app/build.gradle` 中添加下列代码: ```groovy android: { .... defaultConfig { applicationId "" manifestPlaceholders = [ GETUI_APP_ID : "USER_APP_ID", GETUI_APP_KEY : "USER_APP_KEY", GETUI_APP_SECRET: "USER_APP_SECRET", // 下面是多厂商配置,如需要开通使用请联系技术支持 // 如果不需要使用,预留空字段即可 XIAOMI_APP_ID : "", XIAOMI_APP_KEY : "", MEIZU_APP_ID : "", MEIZU_APP_KEY : "", HUAWEI_APP_ID : "", OPPO_APP_KEY : "", OPPO_APP_SECRET : "", VIVO_APP_ID : "", VIVO_APP_KEY : "" ] } } ``` #### 2.添加依赖地址 ``` buildscript { repositories { jcenter() google() maven { url "http://mvn.gt.getui.com/nexus/content/repositories/releases/" } } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() google() maven { url "http://mvn.gt.getui.com/nexus/content/repositories/releases/" } } } ``` ### 集成 HMS SDK #### 1. 添加应用的 AppGallery Connect 配置文件 1. 登录 AppGallery Connect 网站,选择“我的应用”。找到应用所在的产品,点击应用名称。 2. 选择“开发 > 概览”,单击“应用”栏下的“agconnect-services.json”下载配置文件。 3. 将 agconnect-services.json 文件拷贝到应用级根目录下。如下: ``` android/ |- app/ (项目主模块) | ...... | |- build.gradle (模块级 gradle 文件) | |- agconnect-services.json |- gradle/ |- build.gradle (顶层 gradle 文件) |- settings.gradle | ...... ``` #### 2. 配置相应依赖 1.在以项目名为命名的**顶层** `build.gradle` 文件的 `buildscript.repositories` 和 `allprojects.repositories` 中,添加 HMS SDK 的 maven 仓地址 `maven {url 'http://developer.huawei.com/repo/'}`。在 `buildscript.dependencies` 添加 `classpath 'com.huawei.agconnect:agcp:${version}'` 如下所示: ``` buildscript { repositories { jcenter() google() maven {url 'http://developer.huawei.com/repo/'} } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' classpath 'com.huawei.agconnect:agcp:1.3.1.300' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() google() maven {url 'http://developer.huawei.com/repo/'} } } ``` 2.该步骤需要在模块级别 `app/build.gradle` 中文件头配置 `apply plugin: 'com.huawei.agconnect'` 以及在 `dependencies` 块配置 HMS Push 依赖 `implementation 'com.huawei.hms:push:${version}'`,如下: ``` apply plugin: 'com.android.application' apply plugin: 'com.huawei.agconnect' android { ...... } dependencies { ...... implementation 'com.huawei.hms:push:5.0.2.300' } ``` 3.配置签名信息:将步骤一【创建华为应用】中官方文档**生成签名证书指纹步骤中生成的签名文件拷贝到工程的 app 目录下**,在 app/build.gradle 文件中配置签名。如下(具体请根据您当前项目的配置修改): ``` signingConfigs { config { keyAlias 'pushdemo' keyPassword '123456789' storeFile file('pushdemo.jks') storePassword '123456789' } } buildTypes { debug { signingConfig signingConfigs.config } release { signingConfig signingConfigs.config minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } ``` ### iOS: 在你项目的main.dart中添加下列代码: ``` Getuiflut().startSdk( appId: "8eLAkGIYnGAwA9fVYZU93A", appKey: "VFX8xYxvVF6w59tsvY6XN", appSecret: "Kv3TeED8z19QwnMLdzdI35" ); ``` ### 使用 ```dart import 'package:getuiflut/getuiflut.dart'; ``` ​ ### Android API ```dart /** *初始化个推sdk */ Getuiflut.initGetuiSdk(); ### 公用 API /** * 绑定别名功能:后台可以根据别名进行推送 * * @param alias 别名字符串 * @param aSn 绑定序列码, Android中无效,仅在iOS有效 */ bindAlias(alias, sn); unbindAlias(alias, sn); /** * 给用户打标签 , 后台可以根据标签进行推送 * * @param tags 别名数组 */ setTag(tags); /** * 停止SDK服务 * */ turnOffPush(); /** * 开启SDK服务 * */ turnOnPush(); ``` ### iOS API - GTSDK<=2.4.6.0版本,需要使用插件版本<=0.2.5 - GTSDK>2.4.6.0版本,需要使用最新插件版本 /** * 同步服务端角标 * */ setBadge(badge); /** * 复位服务端角标 * */ resetBadge(); /** * 同步App本地角标 * */ setLocalBadge(badge); /** * 获取冷启动Apns参数 * */ getLaunchNotification(); #### 回调方法 ```dart Getuiflut().addEventHandler( // 注册收到 cid 的回调 onReceiveClientId: (String message) async { print("flutter onReceiveClientId: $message"); setState(() { _getClientId = "ClientId: $message"; }); }, // 注册 DeviceToken 回调 onRegisterDeviceToken: (String message) async { setState(() { _getDeviceToken = "DeviceToken: $message"; }); }, // SDK收到透传消息回调 onReceivePayload: (Map message) async { setState(() { _onReceivePayload = "$message"; }); }, // 点击通知回调 onReceiveNotificationResponse: (Map message) async { setState(() { _onReceiveNotificationResponse = "$message"; }); }, // APPLink中携带的透传payload信息 onAppLinkPayload: (String message) async { setState(() { _onAppLinkPayLoad = "$message"; }); }, //通知服务开启\关闭回调 onPushModeResult: (Map message) async { print("flutter onPushModeResult: $message"); }, // SetTag回调 onSetTagResult: (Map message) async { print("flutter onSetTagResult: $message"); }, //设置别名回调 onAliasResult: (Map message) async { print("flutter onAliasResult: $message"); }, //查询别名回调 onQueryTagResult: (Map message) async { print("flutter onQueryTagResult: $message"); }, //APNs通知即将展示回调 onWillPresentNotification: (Map message) async { print("flutter onWillPresentNotification: $message"); }, //APNs通知设置跳转回调 onOpenSettingsForNotification: (Map message) async { print("flutter onOpenSettingsForNotification: $message"); }, ); ```