预先准备
安装
dependencies:
jpush_flutter: 2.1.4
申请应用
安卓配置
在 build.gradle 中添加如下代码
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
}
manifestPlaceholders += [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "应用管理的keyId",
JPUSH_CHANNEL : "developer-default",
]
坑 1:'arm64-v8a'后的逗号要删除,否则无法运行
坑 2:manifestPlaceholders = 无法识别,改成 +=即可
然后设置一下版本
minSdkVersion 17
targetSdkVersion 28
修改 Manifest 文件
// activity标签中:
android:name="io.flutter.embedding.android.FlutterFragmentActivity"
写代码
import 'package:jpush_flutter/jpush_flutter.dart';
void initJpush() {
JPush jpush = new JPush();
jpush.setup(
appKey: "应用管理keyId",
channel: "theChannel",
production: false,
debug: false, // 设置是否打印 debug 日志
);
jpush.getRegistrationID().then((rid) {
print('注册的 id:$rid');
});
jpush.setAlias("haian").then((map) {
print('用户被指定:haian');
});
// IOS需要设置这个
jpush.applyPushAuthority(
new NotificationSettingsIOS(sound: true, alert: true, badge: true));
jpush.addEventHandler(
// 接收通知回调方法。
onReceiveNotification: (Map<String, dynamic> message) async {
print("flutter onReceiveNotification: $message");
},
// 点击通知回调方法。
onOpenNotification: (Map<String, dynamic> message) async {
print("flutter onOpenNotification: $message");
},
// 接收自定义消息回调方法。
onReceiveMessage: (Map<String, dynamic> message) async {
print("flutter onReceiveMessage: $message");
},
);
}
使用
IOS 配置
准备开发者账号
配置 Identifiers
如果没有找到本地的 Identifier,则需要手动添加
添加的时候需要勾选 Push 服务
配置证书
选择此服务(开发 + 生产环境)
选择之前创建的 Identifier
申请证书,打开钥匙串管理
填写内容,存储到磁盘,保存好密钥
上传这个证书,然后下载生成的证书
之后打开此证书,导出为 p12 文件
配置 xcode
防止出错,info 配置文件修改一下 Bundle identifier
添加 push 服务
坑
error pod install
项目目录运行 sudo gem install ffi
或者 sudo gem install ffi -- --enable-libffi-alloc
打开 ios 文件夹,运行 arch -x86_64 pod install
或者 pod install
模拟器无法运行
使用 Jpush 之后无法在模拟器运行了,只能链接真机运行。
代码与使用
和安卓上文内容一样