h5页面下载apk方法
需求描述
接到的原始需求是這樣的,有一個H5頁面,頁面中有個“點擊下載”的按鈕,點擊之后,完成下載特定的apk。
大概是下面這樣的?:
圖片描述
需求分析
接到需求的時候我偷樂了一下,這個H5頁面最大的優(yōu)點是不在微信中使用(微信好坑,各種限制,基本上從微信瀏覽器里面實現(xiàn)直接下載apk是不太可能的),如果是在平常的瀏覽器的話,就簡單多了。
功能實現(xiàn)
于是我想到了第一種,點擊下載按鈕的時候改變location.href。
- 方法一:
// 我隨便找了個apk的下載鏈接舉個例子
window.location.href = 'http://imtt.dd.qq.com/16891/26747DD8B125A8479AD0C9D22CA47BC9.apk?fsname=com.snda.wifilocating_4.2.91_3211.apk&csr=1bbd';- 方法二:
關鍵代碼:
var src = 'http://imtt.dd.qq.com/16891/26747DD8B125A8479AD0C9D22CA47BC9.apk?fsname=com.snda.wifilocating_4.2.91_3211.apk&csr=1bbd'; var iframe = document.createElement('iframe'); iframe.style.display = 'none'; iframe.src = "javascript: '<script>location.href=\"" + src + "\"<\/script>'"; document.getElementsByTagName('body')[0].appendChild(iframe);使用iframe的話,既可以實現(xiàn)下載,又可以不重新打開頁面,并且,對原頁面的布局不會產(chǎn)生任何影響,最后我也是采取這種方案的。
- 方法三
第三種方法是偶然學到的,既然使用iframe可以,那使用form一定也是可以的,form的action也可以發(fā)請求。
于是改寫了下第二種方法:
以上的代碼也可以實現(xiàn)下載apk的需求。
總結
其實第二和第三種方法是擴展發(fā)揮了iframe和form的用法,單獨來看,我們知道iframe可以在父頁面里嵌套子頁面,知道form的action可以發(fā)請求或者跳轉頁面,這是很常見的功能,但是不知道它們會被用在下載文件這個需求上,且產(chǎn)生的效果非常好??梢娭R還是要融會貫通,舉一反三的。
寫這篇的時候我去查了下iframe,原來ajax等技術未出現(xiàn)的時候,有段時間業(yè)內(nèi)常用的長輪詢的方法竟然就是借助的iframe,有興趣的也可以研究一下。
文章出自:https://blog.csdn.net/weixin_34221112/article/details/88768839?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%8E%9F%E7%94%9Fjs%E4%B8%8B%E8%BD%BDapk%E6%96%B9%E6%B3%95&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-9-.first_rank_v2_pc_rank_v29_1&spm=1018.2226.3001.4449
總結
以上是生活随笔為你收集整理的h5页面下载apk方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在线ER模型设计:Oracle导入生成E
- 下一篇: 消灭中间商!他们用区块链技术实现流量的点