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