我在我的RaspberryPi设备上设置了一个强制门户,它运行基于Python / Pyramid的项目。当您连接到设备的热点时,它会发出通知,当您单击该通知时,它会将您带到已定义的(默认)页面,其中我有多个链接,您可以下载PDF文件等。
当您使用Chrome浏览器或Mozilla或任何其他浏览器时,它可以正常工作,但是当您单击该通知时,它会将您带到定义的(默认)页面。我认为这是一个默认的Android浏览器,但我不确定。
这是从我的html页面偷看
<button class="btn btn-sm pdflink pdfdownload" href="${pdfurl}">
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
</button>
$(document).ready(function(){
$(".pdfdownload").click(function() {
var url = $(this).attr('href');
window.location = url;
});
});
从Pyramid的下载视图:
@view_config(context=Product, name="download")
def pdfdownload(context,request):
blb = context.blobdata
resp=Response("Unable to fetch the attachment")
if blb:
resp=Response(content_disposition="attachment; filename="+blb.filename.encode('utf-8'),content_type=blb.contentType)
resp.app_iter = FileIter(blb.retFile(),block_size=4096 * 64)
resp.content_length = blb.size
return resp
它在Android Captive Portal浏览器上无法正常工作。