• Stars
    star
    142
  • Rank 258,495 (Top 6 %)
  • Language
    Dart
  • License
    MIT License
  • Created over 5 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

个推官方提供的推送SDK Flutter 插件(支持 Android & iOS)

Getui Flutter Plugin

1、引用

Pub.dev: getui-flutter-plugin

增加依赖:

flutter pub add getuiflut

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

dependencies:
  getuiflut: ^0.2.18

下载依赖:

flutter pub get
flutter run

2、配置

2.1、Android:

参考官网文档中心进行配置:https://docs.getui.com/getui/mobile/android/overview/

flutter插件默认包含自定义组件,Flutter用户不用处理以下配置:

  • Android->集成指南-> 3.配置推送服务-> FlutterPushService ("继承自 com.igexin.sdk.PushService 的自定义 Service")

  • Android->集成指南-> 6.编写集成代码-> FlutterIntentService ("继承自 com.igexin.sdk.GTIntentService 的自定义 Service")

2.2、iOS:

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

   Getuiflut().startSdk(
      appId: "8eLAkGIYnGAwA9fVYZU93A",
      appKey: "VFX8xYxvVF6w59tsvY6XN",
      appSecret: "Kv3TeED8z19QwnMLdzdI35"
   );

启用notification:xcode主工程配置 > Signing & Capabilities > +Push Noticifations

注意:

Apple 在 iOS 10 中新增了Notification Service Extension机制,可在消息送达时进行业务处理。为精确统计消息送达率,在集成个推SDK时,可以添加 Notification Service Extension,并在 Extensions 中添加 GTExtensionSDK 的统计接口,实现消息展示回执统计功能。具体可参考个推集成文档

3、使用

import 'package:getuiflut/getuiflut.dart';

3.1、公共 API

  • 公共 API
/**
	* 绑定别名功能:后台可以根据别名进行推送
	*
	* @param alias 别名字符串
	* @param aSn   绑定序列码, Android中无效,仅在iOS有效
	*/
bindAlias(alias, sn);
unbindAlias(alias, sn);

/**
  *  给用户打标签 , 后台可以根据标签进行推送
  *
  *  @param tags 别名数组
  */
setTag(tags);

/**
  *  停止SDK服务
  *
  */
turnOffPush();

/**
  *  开启SDK服务
  *
  */
turnOnPush();
  • 回调方法
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<String, dynamic> message) async {
        setState(() {
          _onReceivePayload = "$message";
        });
      },
    	// 点击通知回调
      onReceiveNotificationResponse: (Map<String, dynamic> message) async {
        setState(() {
          _onReceiveNotificationResponse = "$message";
        });
      },
    	// APPLink中携带的透传payload信息
      onAppLinkPayload: (String message) async {
        setState(() {
          _onAppLinkPayLoad = "$message";
        });
      },
    	//通知服务开启\关闭回调
      onPushModeResult: (Map<String, dynamic> message) async {
        print("flutter onPushModeResult: $message");
      },
	// SetTag回调
      onSetTagResult: (Map<String, dynamic> message) async {
        print("flutter onSetTagResult: $message");
      },
	//设置别名回调
      onAliasResult: (Map<String, dynamic> message) async {
        print("flutter onAliasResult: $message");
      },
	//查询别名回调
      onQueryTagResult: (Map<String, dynamic> message) async {
        print("flutter onQueryTagResult: $message");
      },
	//APNs通知即将展示回调
      onWillPresentNotification: (Map<String, dynamic> message) async {
        print("flutter onWillPresentNotification: $message");
      }, 
	//APNs通知设置跳转回调
      onOpenSettingsForNotification: (Map<String, dynamic> message) async {
        print("flutter onOpenSettingsForNotification: $message");
      }, 
      onGrantAuthorization: (String granted) async {
        print("flutter onGrantAuthorization: $granted");
      },
    );

3.2、Android API

/**
	*初始化个推sdk
	*/
Getuiflut.initGetuiSdk();
/**
*设置角标
*/
  setBadge(badge);

3.2、iOS API

  • GTSDK<=2.4.6.0版本,需要使用插件版本<=0.2.5
  • GTSDK>2.4.6.0版本,需要使用最新插件版本
/**
    *  启动sdk+通知授权
    *
    */ 
    startSdk(appId,appKey,appSecret);
    }

/**
    *  启动sdk
    *
    */ 
    startSdkSimple(appId,appKey,appSecret);
    }



/**
    *  通知授权,需要先启动sdk。
    *
    */ 
    registerRemoteNotification(appId,appKey,appSecret);
    }


/**
  *  获取冷启动Apns参数
    *
    */
    getLaunchNotification();

/**
  *  同步服务端角标
  *
 */
    setBadge(badge);

/**
  *  复位服务端角标
    *
    */
    resetBadge();

/**
  *  同步App本地角标
    *
    */
    setLocalBadge(badge); 

More Repositories

1

react-native-getui

个推官方提供的推送SDK React Native 插件(支持 Android & iOS)
Objective-C
161
star
2

getui-pushapi-java-client-v2

个推官方提供的推送服务端SDK(Java语言),基于全新的RestAPI V2接口(https://docs.getui.com/getui/server/rest_v2/introduction/)
Java
94
star
3

cordova-plugin-getuisdk

个推官方提供的推送SDK PhoneGap(Cordova) 插件(支持 Android & iOS)
JavaScript
69
star
4

getui-pushapi-php-client-v2

个推官方提供的推送服务端SDK(PHP语言),基于全新的RestAPI V2接口(https://docs.getui.com/getui/server/rest_v2/introduction/)
PHP
35
star
5

getui-pushapi-java-demo

个推官方提供的推送服务端API Demo(Java语言)
Java
33
star
6

getui-sdk-ios-cocoapods

个推官方提供的推送SDK CocoaPods 集成库(iOS平台 )
Objective-C
31
star
7

getui-pushapi-php-client

个推官方提供的推送服务端API(PHP语言)
PHP
28
star
8

getui-unity3d

个推官方提供的推送SDK Unity3D 插件(支持 Android & iOS)
Objective-C
21
star
9

getui-3rd-push-utils

个推第三方厂商推送SDK封装库
Java
7
star
10

GTExtensionSDK-iOS-CocoaPods

Objective-C
6
star
11

getui-apicloud-android

个推官方提供的推送SDK APICloud 插件(支持Android)
Java
6
star
12

getui-apicloud-ios

个推官方提供的推送SDK APICloud 插件(支持iOS)
Objective-C
5
star
13

getui-cocos2dx

个推官方提供的推送SDK Cocos2dx 插件(支持 iOS)
C++
5
star
14

codis2pika

Go
4
star
15

getui-gcsdk-ios-cocoapods

个推官方提供的个数SDK CocoaPods 集成库(iOS平台 )
Objective-C
4
star
16

getui-gysdk-ios-cocoapods

个推官方提供的个验SDK CocoaPods 集成库(iOS平台 )
Objective-C
3
star
17

getui-ginsight-ios-cocoapods

个推官方提供的个像SDK CocoaPods 集成库(iOS平台 )
Ruby
2
star
18

gysdk-verify-gradle-plugin

个推官方提供的个验SDK集成完整性检测插件(支持Gradle)
1
star
19

Specs

Getui Specs
Ruby
1
star
20

getui-gtcsdk-ios-cocoapods

个推基础库 iOS SDK CocoaPods 集成库
Ruby
1
star