Android 带有自定义图标的城市航空推送通知

Android 带有自定义图标的城市航空推送通知,android,push-notification,urbanairship.com,Android,Push Notification,Urbanairship.com,我最近开始为我的公司使用城市飞艇。我必须为推送通知创建自定义布局。我的问题是我需要获取图像的url,以便使用毕加索在远程视图中设置图标。每个人都在使用资源文件夹中的drawables设置通知图标。此外,我没有找到任何getter方法可以为我提供图像url 而且,我也找不到解决同样问题的好例子 您将希望以额外的方式发送URL。使用 如果您使用的是composer,您可以在android覆盖下设置额外功能 然后,在设备上,您可以使用以下方式访问额外信息: String url = message.g

我最近开始为我的公司使用城市飞艇。我必须为推送通知创建自定义布局。我的问题是我需要获取图像的url,以便使用毕加索在远程视图中设置图标。每个人都在使用资源文件夹中的drawables设置通知图标。此外,我没有找到任何getter方法可以为我提供图像url


而且,我也找不到解决同样问题的好例子

您将希望以额外的方式发送URL。使用

如果您使用的是composer,您可以在android覆盖下设置额外功能

然后,在设备上,您可以使用以下方式访问额外信息:

String url = message.getExtra("url", null);
或者,如果您使用的是较旧的SDK版本:

String url = message.getPushBundle().getString("url");

在类中粘贴此方法:

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);
对于城市飞艇,还有一种发送和接收多个值的方法,您可以通过有效载荷发送值(字符串、声音名称、Json等)。我建议您将url作为Json中的键值对发送,并通过Json在应用程序中获取。检查此链接:


谢谢你的回答Zohaib。我从服务器检索图标时没有任何问题。我用毕加索来做这件事。但我的问题是如何获取其自身的url。我从urbanairship服务器获取推送消息负载,但是该负载没有任何getter来检索图标url。请让我知道,如果我没有做到这一点,我使用远程视图,使我的通知定制。在视图中,我有一个图像视图。我只想把图标放在图像视图中。因此,如果我硬编码图像url,一切都很好。在这种情况下,我使用毕加索通过该url获取图标,并将其放在同一个imageView中。但我的问题是,我无法从城市飞艇Pushmessage有效载荷中获取图像url本身,因为它们没有任何getter方法来检索url。您可以将url作为额外的url发送到SDK,并使用SDK 8.5上的
message.getExtra(“icon\u url”,null)
获取它+
builder.setLargeIcon(bitmap);