手機端的微信訪問網(wǎng)頁的時候,是禁止直接下載文件的
但是IOS端可以預(yù)覽.txt/.doc/.docx/.xls/xlsx/.pdf等格式的文件,Android端在下載這些格式的文件時,可以喚起 ‘即將離開微信,在瀏覽器打開’ 提示
所以,根據(jù)手機微信的這些限制,考慮在下載文件時,使Android微信在下載任何格式的文件時,都可以喚起提示,以打開瀏覽器下載文件
1、Web端代碼
推薦以跳轉(zhuǎn)的方式實現(xiàn)(注意:離開微信在瀏覽器打開時,鏈接地址不會被修改)文章來源:http://www.zghlxwxcb.cn/news/detail-603016.html
function download(id){
//例如 http://localhost/app/file/download?id=123
let url = BASEURL +'/file/download?id='+ id;
window.location.href = url
}
2、java代碼
java程序中判斷客戶端的瀏覽器信息,來判斷是否為手機微信和是否Android微信
這里使用 JFinal文章來源地址http://www.zghlxwxcb.cn/news/detail-603016.html
public void download() throws IOException {
String id = getPara("id", "");
if(StringUtils.isNotBlank(id)){
Record fileRec = Db.findById("file_upload", id);
//微信端返回一個默認(rèn)假文件,使得喚起微信的‘在瀏覽器打開’
if(isAndroidWechat(getRequest())){
File file = new File("a.txt");
if(!file.exists())
file.createNewFile();
renderFile(file);
}else{
renderFile(new File(fileRec.getStr("save_path")), fileRec.getStr("file_name"));
}
}else{
renderJson(err());
}
}
/**
* 客戶端是否是Android微信瀏覽器
* @param request
* @return
*/
public static boolean isAndroidWechat(HttpServletRequest request) {
String userAgent = request.getHeader("user-agent");
return userAgent != null
&& userAgent.toLowerCase().indexOf("micromessenger") > -1
&& userAgent.toLowerCase().indexOf("wxwork") < 0
&& userAgent.toLowerCase().indexOf("android") > -1;
}
到了這里,關(guān)于微信H5下載文件、微信瀏覽器無法下載文件解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!