一、配置極光開發者
1.注冊極光開發者
2.創建應用
二、創建APP
1.添加依賴
pubspec.yaml 添加: flutter_jpush: ^0.0.4
2.android 專屬配置
defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "xxx" minSdkVersion 16 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" ndk { //選擇要添加的對應 cpu 類型的 .so 庫。 abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64' // 'arm64-v8a', } manifestPlaceholders = [ JPUSH_PKGNAME : applicationId, JPUSH_APPKEY : "123", //JPush上注冊的包名對應的appkey. JPUSH_CHANNEL : "developer-default",//你的推送渠道,如果不知道填寫developer-default即可 ] }
3.編寫代碼
import 'package:flutter/material.dart'; import 'package:flutter_jpush/flutter_jpush.dart'; void main() => runApp(MyApp()); class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { void initState(){ super.initState(); _initJPush(); _initNotification(); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text("測試"), ), body: Center( child: Text('data'), )), ); } //初始化 void _initJPush() async { await FlutterJPush.startup(); print("初始化jpush成功"); // 獲取 registrationID var registrationID = await FlutterJPush.getRegistrationID(); print(registrationID); // 注冊接收和打開 Notification() _initNotification(); } //初始化 void _initNotification() async { FlutterJPush.addReceiveNotificationListener( (JPushNotification notification) { print("收到推送提醒: $notification"); }); FlutterJPush.addReceiveOpenNotificationListener( (JPushNotification notification) { print("打開了推送提醒: $notification"); }); } }
測試
推送通知
注意:android一定要加上包名,而且一旦確認不能更改