先去極光后臺創(chuàng)建應用
然后在這里填寫自己的flutter包名

然后在這里填寫包名

自己的包名在這里看到
JPUSH_PKGNAME填寫自己的包名
具體包名在這里可以找到

image.png
或者這里

image.png
JPUSH_APPKEY填寫創(chuàng)建應用的秘鑰

秘鑰這里找
JPUSH_CHANNEL默認所寫內容
manifestPlaceholders = [
JPUSH_PKGNAME: "包名",
JPUSH_APPKEY : "秘鑰", /*NOTE: JPush 上注冊的包名對應的 Appkey.*/
JPUSH_CHANNEL: "developer-default", /*暫時填寫默認值即可.*/
]

image.png
當然別忘了在pubspec.yaml里獲取極光插件庫
jpush_flutter: 0.1.0 #極光推送

image.png

別忘了get
在main.dart里引用庫
///推送
import 'package:jpush_flutter/jpush_flutter.dart';
然后在MyApp里聲明變量
String debugLable = 'Unknown'; /*錯誤信息*/
final JPush jpush = new JPush(); /* 初始化極光插件*/
在initState里初始化JPush,注意 jpush.setup這里4個參數(shù)必填,官方文檔沒提,但這里少一個就會導致ios閃退
/// 配置jpush(不要省略)
///debug就填debug:true,我這是生產環(huán)境所以production:true
jpush.setup(appKey: '自己的秘鑰' ,channel: 'developer-default',production: true,debug: false);
/// 監(jiān)聽jpush
jpush.applyPushAuthority(
new NotificationSettingsIOS(sound: true, alert: true, badge: true));
jpush.addEventHandler(
onReceiveNotification: (Map<String, dynamic> message) async {
print(message);
},
onOpenNotification: (Map<String, dynamic> message) async {
/// 點擊通知欄消息,在此時通??梢宰鲆恍╉撁嫣D等
},
);
測試是否可以推送
在一個頁面引入極光庫
///推送
import 'package:flutter/services.dart';
import 'package:jpush_flutter/jpush_flutter.dart';
老樣子配置變量
String debugLable = 'Unknown'; /*錯誤信息*/
final JPush jpush = new JPush(); /* 初始化極光插件*/
隨便找一個觸發(fā)按鈕函數(shù)測試
/*三秒后出發(fā)本地推送*/
var fireDate = DateTime.fromMillisecondsSinceEpoch(DateTime.now().millisecondsSinceEpoch + 1000);
var localNotification = LocalNotification(
id: 234,
title: '我是推送測試標題wwwwwwwww',
buildId: 1,
content: '看到了說明已經成功了hahahaha',
fireTime: fireDate,
subtitle: '一個測試qqqqqqqq',
);
jpush.sendLocalNotification(localNotification).then((res) {
print('sddd');
setState(() {
debugLable = res;
});
});
配置極光的tag和別名還有ios端的證書配置稍后更新
ios蘋果端并不需要改動代碼,只需要配置證書開啟服務就行
先打開runner文件(ios代碼)

image.png
在xcode打開后按如下步驟來開啟push功能
在此前別忘了配置你的appleID

image.png

image.png

image.png
一般來說這里appid都是公司給你的,而且我這邊已經自動配置好了Identifiers

image.png
所以暫且略過如和配置Identifiers,我記得如果你開啟了Automatically manage signing(自動管理證書)的功能,會自動在你的appleID開發(fā)者賬戶里創(chuàng)建和你項目Bundle Identifier一樣的Identifiers,什么是Automatically manage signing呢
就是下面這個

image.png
所以選擇好team后,按下面開啟push功能

image.png
雙擊開啟push功能,成功開啟后是這樣的

image.png
剩下的就是在你的開發(fā)者中心配置推送證書了

image.png

image.png
點擊你的Identifiers,進去后往下滑,找到Push Notifications,打鉤然后Configure

這一步需要上傳你本機生成的證書文件

image.png
那我們先去生成證書,這個開發(fā)者中心這一步暫停
打開本機的

image.png

image.png
這里的用戶電子郵件地址和CA電子郵件地址我填寫的是公司appleid的郵箱
常用名稱建議起一個記得住分得清的名字,例如我就是按照項目名+具體端(商戶端或者客戶端)+用途(Push),注意要存儲到磁盤,然后點擊繼續(xù)下一步

image.png
保存到桌面即可,建議單獨建立一個新文件夾來存放這個項目所需要的證書,以免以后亂

image.png
然后把這個證書上傳到剛剛我們暫停的地方

image.png
選擇我們剛剛生成的證書,然后continue

image.png
然后download就行,這個就是Development開發(fā)環(huán)境的證書

image.png
重復步驟弄好Production生成環(huán)境證書,最后得到兩個這個文件.cer

image.png
一個是開發(fā)一個是生產
我們之前的也有變化

image.png
這里可以看到推送證書過期時間

image.png
如果證書找不到還可以來這里從新下載
但極光后臺要的是p12后綴的證書
所以分別雙擊打開

image.png
然后在本機的鑰匙串訪問里找到,根據(jù)后面的Bundle Identifier

image.png
分別右擊導出

image.png

image.png
這里的密碼是自己自定義的證書密碼,記住就行

如果還有一步輸入密碼則是你電腦的登錄密碼授權而已
最后一共4個文件

image.png
然后回到極光開發(fā)后臺

image.png
分別上傳后綴為.p12的對應證書,密碼則是剛剛你自己設置的證書密碼

image.png
是否將生產證書用于開發(fā)環(huán)境,這個選項是假如你就一個生產證書的話,極光也可以用于開發(fā)環(huán)境下推送測試,我們全都有,所以不需要,直接保存
然后能看到這里的過期時間和蘋果開發(fā)者中心那邊的過期時間是一樣的

最后在Android studio里從新打包生成就好