gpt4 book ai didi

android - 解析 - Android - 在默认推送通知上修剪文本

转载 作者:行者123 更新时间:2023-11-30 02:31:26 25 4
gpt4 key购买 nike

有什么方法可以在默认的 Parse 推送通知处理程序上设置 NotificationCompat.BigTextStyle() 吗?当我发送一个包含“警报”字段的推送时,sdk 显示具有默认样式的通知和它被修剪的文本。

最佳答案

您必须自定义您的“数据”负载。而不是通常的

Parse.Push.send({
channels: [ "Giants", "Mets" ],
data: {
alert: "The Giants won against the Mets 2-3."
}
}, {
success: function() {
// Push was successful
},
error: function(error) {
// Handle error
}
});

例如,您必须将您的有效载荷制作成这样的东西:

var myData = {

action:"com.yourcompany.blahblah.UPDATE_SOMETHING", // take note of this!!!
message:"You are awesome",
somethingelse:3
};

// Note: some "data" field names are reserved

Parse.Push.send({
channels: [ "Mets" ],
data: myData
}, {
success: function() {
// Push was successful
},
error: function(error) {
// Handle error
}
});

您可以在文档中看到:https://parse.com/docs/push_guide#options-data/JavaScript

然后,在您的 Android 客户端上:

1.) 在 list 文件中删除这些标签

<receiver android:name="com.parse.ParseBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<receiver android:name="com.parse.ParsePushBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.DELETE" />
<action android:name="com.parse.push.intent.OPEN" />
</intent-filter>
</receiver>

2.) 制作您自己的 BroadcastReceiver(我建议使用 WakefulBroadcastReceiver 类型),然后触发 IntentService 以显示通知。此广播接收器监听您之前在自定义数据负载中指定的操作:

<receiver
android:name="com.yourcompany.blahblah.MyCustomReceiver"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="com.yourcompany.blahblah.UPDATE_SOMETHING" />
</intent-filter>
</receiver>

3.) 在您的 IntentService 中(当然也在您的 list 文件中注册),然后您可以从 Intent 的 extra 中将“推送”数据提取为 json,然后按照您希望显示的方式制作通知:

@Override
protected void onHandleIntent(Intent intent) {

final Bundle extras = intent.getExtras();
final JSONObject json = new JSONObject(extras.getString("com.parse.Data"));
// keys matching your myData payload object names/keys
final String message = json.getString("message");
final int somethingelse = json.getInt("somethingelse");

// YOUR code to compose the Notification however you want it to appear follows here

编辑:

另一种方法:

1.) 创建一个扩展 ParsePushBroadcastReceiver ( https://parse.com/docs/android/api/com/parse/ParsePushBroadcastReceiver.html ) 的新类

2.) 覆盖方法,特别是 getNotification(Context context, Intent intent)

3.) 从那里撰写您的 BigStyle 通知

关于android - 解析 - Android - 在默认推送通知上修剪文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27281453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com