在Firebase Console 添加应用工程并下载配置文件“google-services.json”,同时在LTV dashboard更新API密钥和Sender ID。
关于如何得到Sender ID 和API 密钥,请参考这里。
在您的APP中添加Firebase SDK,将已下载的“google-services.json”文件添加到您工程的根目录。
在 buildscript > dependencies
中添加:
classpath 'com.google.gms:google-services:4.0.1’
在app level build.gradle
中添加:
Maven {
url ‘https://maven.google.com’
name ‘Google’
}
implementation "com.google.firebase:firebase-messaging:23.0.0"
在底部添加:
apply plugin: 'com.google.gms.google-services'
对于 Firebase v23.0.0,需要使用 minSdkVersion 26 or minSdkVersion 19 和 Java 8.
您可以在app level build.gradle
设置Jave版本,比如(VERSION_1_8
== Java 8):
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
在您App的工程中创建一个类扩展FirebaseMessagingService
在这两个类中,分别调用Tapjoy push notification APIs
Tapjoy.setReceiveRemoteNotification(remoteMessage.getData());
Tapjoy.setDeviceToken(deviceToken);
示例:
public class FCMMessageService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Tapjoy.setReceiveRemoteNotification(remoteMessage.getData());
}
此类还应重载设置设备令牌的方法。 setDeviceToken
只能在Tapjoy连接后调用。 如果 Tapjoy尚未连接,您应该存储设备令牌并稍后在连接成功回调中设置它。
示例:
@Override
public void onNewToken(String deviceToken) {
2 // Get updated InstanceID token.
3 if (deviceToken != null) {
4 if (Tapjoy.isConnected()) {
5 Tapjoy.setDeviceToken(deviceToken);
6 } else {
7 token = deviceToken;
8 }
9 }
10}
在您应用的 AndroidManifest.xml添加如下:
<service android:name="<your_FirebaseMessagingService_name">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
```ice>
在发送push notification前,您需要在Tapjoy控制面板中设置API server key 和 sender ID。请点击控制面板左上方的”设置”然后在左菜单栏中选择”Push”来配置您的key。
Sender ID和API Key可以在Firebase Console找到
我可以在使用Tapjoy的同时选择另一个push提供商或者我自己的push服务吗?
可以. 请参考文章.
我的push认证快要到期了
请在到期前替换一个新的认证。
当用Tapjoy发送推送通知时,您可以发送自定义负载(填入控制面板但用户不可见的字符串)。自定义负载可以为任意字符串,您的app可以用您设定的反应方式显示字符串。常见应用包括奖励用户反馈通知消息,在应用中通过自定义URL给用户发送特定位置。想要了解如何在您的app上自定义推送负载,请点击自定义负载文档。
要使您的应用程序能够读取通过此方法发送的信息,您需要实现一些代码。 自定义有效负载通过Intent的 StringExtra
传递。 请在应用的 Main Activity(Launcher Activity)的 onCreate
和 onNewIntent
中添加适当的代码,如下所示:
// called when the user clicks the push message
@Override
protected void onCreate(Bundle savedInstanceState) {
...
String payload = getIntent().getStringExtra(Tapjoy.INTENT_EXTRA_PUSH_PAYLOAD);
if (payload != null) {
Log.d("Tapjoy", "Tapjoy push notification payload: " + payload);
}
...
}
// called when the user gets push message while playing the app
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
String payload = getIntent().getStringExtra(Tapjoy.INTENT_EXTRA_PUSH_PAYLOAD);
if (payload != null) {
Log.d("Tapjoy", "Tapjoy push notification with payload: " + payload);
}
}
当您发送通知时应用按钮会通过Tapjoy控制面板被设置成默认通知按钮(FCM消息)。
您可以在您应用工程AndroidManifest.xml
的<application>
中自定义您的推送图标:
//notification bar small icon.
<meta-data android:name="com.tapjoy.notification.icon" android:resource="@drawable/{id}"/>
//notification panel large icon. (above 11.6.0)
<meta-data android:name="com.tapjoy.notification.icon.large" android:resource="@drawable/{id}"/>
//The icon which is using partial alpha value below android 5.0 (above 11.6.0)
<meta-data android:name="com.tapjoy.notification.icon.compat" android:resource="@drawable/{id}"/>
您可以通过使用API筛选出不想接受推送通知的用户。使用之前您应该先通过调用Tapjoy.connect连接Tapjoy SDK。
// To get the current status
boolean Tapjoy.isPushNotificationDisabled();
// To set/unset push notification disabled
void Tapjoy.setPushNotificationDisabled(boolean);
我们建议在您的app设置页面添加触发开关或检查框界面。