将图像添加到Urban Airship Rich推送作曲

时间:2012-05-03 09:02:27

标签: iphone ios urbanairship.com

在富推送消息中我知道它使用的html格式。问题是我没有任何特定的服务器服务可用。有一些方法在消息中显示图像而不在特定服务器上托管它。换句话说是html中除了图像标签以外的任何方法在html中显示图像?其中内容存储在html页面本身?或者还有其他可能的方法吗?

语言:Obj C

1 个答案:

答案 0 :(得分:0)

我将图像与html(富文本消息)一起发送 - 这样就可以离线阅读收件箱。

你没有指定你正在使用的编程语言,所以我会告诉你我在php中得到的东西:

/**
 * htmlReportImageFromUrl - Takes a url to an image (png), return a html inline image in a <div/>
 *
 * @author Kent Behrends, kent@bci.com, 2012-04-12
 * @param string $url to a png image   
 * @param string $imageFormat and format that Imagick supports, default to 'png'
 * @param int $resizeImage in pixels, defualt to 48
 * @param string $altText for the image 
 * @return string html <div/> string with image data or <div>Bad Image</div>
 */
function htmlReportImageFromUrl($url, $imageFormat = "png", $resizeImage = "48", $altText = "image") {
    $image = new Imagick ();
    $f = fopen ( $url, 'rb' );
    $status = $image->readImageFile ( $f );
    fclose ( $f );
    if (! $status) return '<div>Bad Image</div>';
    $image->setImageFormat ( $imageFormat );
    $image->resizeImage ( $resizeImage, 0, imagick::FILTER_LANCZOS, - 1 );
    $encoded = base64_encode ( $image->getImageBlob () );
    return '<div><img src="data:image/png;base64,' . $encoded . '" alt="'.$altText.'"></div>';
}

使用此功能及其输出的示例。

$kentsImage = 'http://www.gravatar.com/avatar/6376f5c874dd475857c1b4c082f2e665?s=128&d=identicon&r=PG';
$message = '<html><body>';
$message .= '<h4>Sample image from gravatar.com</h4>';
$message .= '<table><tr><td>Kent</td><td>'.htmlReportImageFromUrl($kentsImage).'</td></tr></table>';
$message .= '</body></html>';
print $message;

您可以将$ message作为有效载荷发送到Urban Airships AirMail网址:

格式化输出,src =“data:image / png ...已被截断:

<html>
  <body>
    <h4>Sample image from gravatar.com</h4>
    <table>
      <tr>
        <td>Kent</td>
        <td>
          <div><img src="data:image/png;base64,iVBORw0KGgoAAAANS ...</div>
        </td>
      </tr>
    </table>
  </body>
</html>