谈一谈ios的bug:
关于ios系统的bug这块也是快把柚子给逼疯了啊,ios系统是没有文件管理的,柚子用了很多办法,最后终于确定不管用什么办法ios都是实现不了下载的,只能实现在线查看。所以没办法,如果不考虑兼容ios的话,是很简单就能解决的,但是我想没有哪一个小程序会不让你兼容ios的吧!
先看一下不兼容ios系统的下载柚子是怎么实现的吧:
首先我们需要在页面里写入一个按钮,用来触发pdf的打开和下载,写上点击事件
//查看并下载
See_download() {
wx.downloadFile({//下载
url: url,//服务器上的pdf地址
filePath: wx.env.USER_DATA_PATH + '/test.pdf',//自定义文件地址
success: function (res) {
var filePath = res.filePath
wx.openDocument({//打开
filePath: filePath,
success: function (res) {}
})
}
})
}
OK,执行完成后就已经下载了,并且也已经打开了,但是柚子刚刚就说了,ios是不支持下载的,也就是说ios可以正常打开,但是不能下载,就是这样,另外安卓的是下载了,但是不太好找,他的存放目录是:文件管理/Tencent/MicroMsg/wxanewfiles/一个名字很长的文件夹/test.pdf
好了,这就是不兼容ios下载的方法,但是遇到问题了总要想办法解决的啊,最后实在没办法了,只能稍微改一下需求,改成了转发,反正下载下来也是要发给别人看的嘛,还不如直接点击按钮实现转发给微信好友了呢
但是微信小程序的转发是只能转发页面的,所以柚子就新建了一个专门存放pdf文件的页面,我们默人打开这个页面就自动打开pdf也是一样的效果:下面是实现思路,仅供参考:
1、首先需要一个转发按钮,要获取微信的通讯录的话,按钮中需要加入open-type="share"这个属性的
<button type="primary" size="mini" open-type="share" > 转发 </button>
2、有了转发按钮我们直接在页面中写方法即可:
onShareAppMessage: function (res) {
return {
title: '转发的标题',
path: '/pages/pdf/pdf"share"就会触发,还有就是此方法是不能异步获取参数的,所有要带到转发页面的参数都要在转发之前获取到
3、下面就是转发的页面中的内容了,要在打开这个页面的时候就进入pdf文件,为了页面的美观,柚子又做了一些优化,不需要的可以忽略,下面是代码:
<view>
<view class="btn_box" wx:if="{{show_btn}}">
<button type="primary" bindtap="home">返回首页</button>
<navigator class="back" open-type="exit" target="miniProgram">关闭小程序</navigator>
</view>
</view>
/* pages/pdf/pdf.wxss */
.btn_box{
width: 100%;
box-sizing: border-box;
padding: 30rpx 5%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
margin-top: -50rpx;
}
button{
margin-top: 50rpx;
height: 100rpx;
line-height: 100rpx;
}
.back{
width: 100%;
margin-top: 50rpx;
height: 100rpx;
line-height: 100rpx;
color: #FFF;
background-color: #E64340;
box-sizing: border-box;
font-size: 18px;
text-align: center;
border-radius: 10rpx;
}
// pages/pdf/pdf.js
Page({
/**
* 页面的初始数据
*/
data: {
check:0,
url:'',
show_btn:false,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
url: options.url
})
},
// 返回首页
home(){
wx.reLaunch({
url: '/pages/index/index'
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
var that = this
wx.showLoading({
title: '加载中...',
})
if(this.data.check == 0){
this.setData({
check:1
})
wx.downloadFile({
url: that.data.url,
filePath: wx.env.USER_DATA_PATH + '/' + that.data.name,
success: function (res) {
var filePath = res.filePath
wx.openDocument({
filePath: filePath,
success: function (res) {
wx.hideLoading();
}
})
}
})
}else{
wx.hideLoading();
this.setData({
show_btn:true
})
}
},
})
好了就是这些了,如果还有不懂的朋友欢迎咨询,另外如果有更好的办法,或者是支持ios下载pdf的文件的,或者转发pdf的更好的方法也希望能告诉柚子一下,柚子感激不尽!
总结
以上所述是小编给大家介绍的微信小程序实现打开并下载服务器上面的pdf文件到手机,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。

