1. 海外Push集成
在项目根目录build.gradle文件下配置以下内容
repositories {
mavenCentral()
......
}
2. 配置依赖
在app/build.gradle
文件下配置以下内容:
dependencies {
......
implementation "com.immomo.cosmos.photon:push-hw:1.1.5_071301"
implementation "com.immomo.cosmos.photon:thirdpush-fcm:1.1.5_071301"
}
3. 配置SO架构
目前支持armeabi-v7a和arm64-v8a架构。在app/build.gradle文件中的android.defaultConfig下指定所需的CPU架构。
android {
......
defaultConfig {
......
ndk {
abiFilters "armeabi-v7a", 'arm64-v8a'
}
}
4. 混淆配置
如果项目中使用proguard等工具做了代码混淆,请保留以下选项,否则将导致推送服务不可用。
-keep class com.cosmos.photon.push.**{*;}
-keep interface com.cosmos.photon.push.**{*;}
-keepclasseswithmembernames class * {
native <methods>;
}
-keep class com.mm.mmfile.core.**{*;}
-keep class com.cosmos.mdlog.**{*;}
5. 代码接入
请参考国内push接入
5.1. 使用条件
- 要在运行 Android 4.1 及以上版本且安装了 Google Play 商店应用的设备或者在运行 Android 4.1 且支持 Google API 的模拟器中运行
- 目标为 API 级别 16 (Jelly Bean) 或更高版本
- 使用 Gradle 4.1 或更高版本
5.2. fcm配置
完成以上配置之后,请确保以下内容配置完毕:
- google-services.json 添加到module的模块目录中
- module级Gradle 文件文件末尾添加
apply plugin: 'com.google.gms.google-services'
- 根目录Gradle 文件 (build.gradle) 中添加以下内容
buildscript {
repositories {
google()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}
allprojects {
repositories {
google()
}
}
5.3. 注意事项
- 一条消息可将最多 4KB 的有效负载传送至客户端应用,但是从 Firebase 控制台发送消息时系统会强制执行 1024 个字符的限制。
- 设置自定义默认图标需要在application标记内添加以下内容:
<!-- Set custom default icon. This is used when no icon is set for incoming notification messages.
See README(https://goo.gl/l4GJaQ) for more. -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_ic_notification" />
- 从 Android 8.0(API 级别 26)和更高版本开始使用通知渠道。FCM 提供具有基本设置的默认通知渠道。如果您希望创建和使用您自己的默认渠道,请将 default_notification_channel_id 设置为您的通知渠道对象的 ID(如下所示);只要传入的消息未明确设置通知渠道,FCM 就会使用此值。
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
- 防止自动初始化 Firebase 会生成一个实例 ID。FCM 将使用该实例 ID 生成注册令牌,而 Analytics 将使用该实例 ID 收集数据。在生成实例 ID 后,库会将标识符和配置数据上传到 Firebase。如果您希望阻止自动生成实例 ID,请向您的 AndroidManifest.xml 添加以下元数据值,为 FCM 和 Analytics 停用自动初始化功能(您必须同时为这两者停用此功能):
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
- 国内手机在app杀掉之后不会收到通知,可以使用模拟器
- 接入方如何通过sdk打点记录透传消息数据
/**
* 统计业务方处理透传消息展示
*/
public void onPassThroughMessageShowFromBusiness(MoMessage message, boolean shown)
/**
* 统计业务方处理透传消息的点击
*/
public void onPassThroughMessageClickFromBusiness(MoMessage message)