UrbanAirship 带有自定义图标的推送通知
UrbanAirship push notification with custom icon
我最近开始为我的公司使用 Urban Airship。我必须为推送通知创建自定义布局。我的问题是我需要获取图像的 url 才能使用 Picasso 在远程视图中设置图标。每个人都使用资源文件夹中的可绘制对象来设置通知图标。此外,我没有找到任何 getter 方法可以给我图像 url.
此外,我找不到任何解决相同问题的好例子。
您需要额外发送 URL。使用 push API:
的示例
"notification": {
"alert": "Notification alert",
"android": {
"extra": {
"url": "some url"
}
}
}
如果您使用的是作曲家,则可以在 android 覆盖下设置附加功能。
然后在设备上您可以使用以下方式访问额外内容:
String url = message.getExtra("url", null);
或者,如果您使用的是旧版 SDK:
String url = message.getPushBundle().getString("url");
将此方法粘贴到您的 class:
public Bitmap getBitmapFromURL(String strURL) {
try {
URL url = new URL(strURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
调用此方法从 url:
获取位图
Bitmap bitmap = getBitmapFromURL("https://graph.facebook.com/YOUR_USER_ID/picture?type=large"); // Change the url with your own url.
然后在您的通知对象中将此图像设置为:
builder.setLargeIcon(bitmap);
Urban Airship 也有发送和接收多个值的方法,你可以通过 Payload 发送值(字符串、声音名称、Json 等)。我建议您将 url 作为键值对发送到 Json 中,并通过 Json 在您的应用程序中获取它。检查这个 link:
https://docs.urbanairship.com/reference/libraries/python/1.0.0/push.html#notification-payload
我最近开始为我的公司使用 Urban Airship。我必须为推送通知创建自定义布局。我的问题是我需要获取图像的 url 才能使用 Picasso 在远程视图中设置图标。每个人都使用资源文件夹中的可绘制对象来设置通知图标。此外,我没有找到任何 getter 方法可以给我图像 url.
此外,我找不到任何解决相同问题的好例子。
您需要额外发送 URL。使用 push API:
的示例"notification": {
"alert": "Notification alert",
"android": {
"extra": {
"url": "some url"
}
}
}
如果您使用的是作曲家,则可以在 android 覆盖下设置附加功能。
然后在设备上您可以使用以下方式访问额外内容:
String url = message.getExtra("url", null);
或者,如果您使用的是旧版 SDK:
String url = message.getPushBundle().getString("url");
将此方法粘贴到您的 class:
public Bitmap getBitmapFromURL(String strURL) {
try {
URL url = new URL(strURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
调用此方法从 url:
获取位图Bitmap bitmap = getBitmapFromURL("https://graph.facebook.com/YOUR_USER_ID/picture?type=large"); // Change the url with your own url.
然后在您的通知对象中将此图像设置为:
builder.setLargeIcon(bitmap);
Urban Airship 也有发送和接收多个值的方法,你可以通过 Payload 发送值(字符串、声音名称、Json 等)。我建议您将 url 作为键值对发送到 Json 中,并通过 Json 在您的应用程序中获取它。检查这个 link:
https://docs.urbanairship.com/reference/libraries/python/1.0.0/push.html#notification-payload