本文主要介紹在應(yīng)用中集成極光官方推送jpush_flutter這個(gè)插件秦躯。
安裝
在工程 pubspec.yaml 中加入 dependencies
dependencies:
jpush_flutter: 0.0.8
配置
Android:
在 /android/app/build.gradle
中添加下列代碼:
android: {
....
defaultConfig {
applicationId "替換成自己應(yīng)用 ID"
...
ndk {
//選擇要添加的對(duì)應(yīng) cpu 類(lèi)型的 .so 庫(kù)嗦枢。
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64' // 'arm64-v8a',
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "appkey", // NOTE: JPush 上注冊(cè)的包名對(duì)應(yīng)的 Appkey.
JPUSH_CHANNEL : "developer-default", //暫時(shí)填寫(xiě)默認(rèn)值即可.
]
}
}
- 注意
如果真機(jī)運(yùn)行報(bào)錯(cuò):couldn’t find “l(fā)ibflutter.so”
在android/app/build.gradle添加配置:
ndk{
//選擇要添加的對(duì)應(yīng) cpu 類(lèi)型的 .so 庫(kù)闷畸。
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64' // 'arm64-v8a',
}
或者可以增加編譯選項(xiàng):
--target-platform android-arm64 或者 --target-platform android-arm
`如果運(yùn)行沒(méi)有報(bào)錯(cuò)腰耙,則不用添加;添加之后會(huì)啟動(dòng)不起來(lái)UっぁV腊睢白胀!`
iOS:
在 xcode8 之后需要點(diǎn)開(kāi)推送選項(xiàng): TARGETS -> Capabilities -> Push Notification 設(shè)為 on 狀態(tài)
到此 jpush_flutter 的推送集成已經(jīng)完成。
- 對(duì)于 iOS 來(lái)說(shuō)還有幾個(gè)坑是需要注意的:
- 必須要在 Apple Developer 給應(yīng)用配置推送功能抚岗,創(chuàng)建推送證書(shū) (并且保證 bundle id 與 Apple developer 上的是一致的)如果之前沒(méi)有接觸過(guò)推送證書(shū)建議看視頻來(lái) ?? 官方集成視頻
- 必須要在真機(jī)上做測(cè)試或杠,否則無(wú)法收到推送通知。
- 推送環(huán)境需要保持一致宣蔚,測(cè)試環(huán)境收不到生成環(huán)境的推送推送向抢。
測(cè)試應(yīng)用
- 導(dǎo)入頭文件
import 'package:flutter_jpush/flutter_jpush.dart';
- 在程序入口初始化Jpush,也就是在 main頁(yè)面初始化的時(shí)候添加:
void _startupJpush() async {
print("初始化jpush");
await FlutterJPush.startup();
print("初始化jpush成功");
}
-
在沒(méi)有后臺(tái)的情況下,可以在官網(wǎng)進(jìn)行在線(xiàn)測(cè)試胚委,
20190127163650262.png點(diǎn)擊發(fā)送手機(jī)就可以收到消息啦P!亩冬!
接下來(lái)有幾個(gè)擴(kuò)展方法一并介紹一下:
收到推送提醒
監(jiān)聽(tīng)addReceiveNotificationListener方法:
/*
* 收到推送提醒
* */
void _ReceiveNotification() async {
FlutterJPush.addReceiveNotificationListener(
(JPushNotification notification) {
setState(() {
/// 收到推送
print("收到推送提醒: $notification");
});
});
}
打開(kāi)推送提醒
監(jiān)聽(tīng) addReceiveNotificationListener方法:
/*
* 打開(kāi)推送提醒
* */
void _OpenNotification() async {
FlutterJPush.addReceiveOpenNotificationListener(
(JPushNotification notification) {
setState(() {
print("打開(kāi)了推送提醒: $notification");
});
});
}
監(jiān)聽(tīng)接收自定義消息
一般項(xiàng)目這個(gè)方法會(huì)用的比較多吧K蚁!!鉴未!
監(jiān)聽(tīng) addReceiveCustomMsgListener方法:
/*
* 監(jiān)聽(tīng)接收自定義消息
* */
void _ReceiveCustomMsg() async {
FlutterJPush.addReceiveCustomMsgListener((JPushMessage msg) {
setState(() {
print("收到推送消息提醒: $msg");
});
});
}