轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

image组件binderror实例,使用百度api获取天气信息

发布者: xiaomen2 | 发布时间: 2017-11-16 08:04| 查看数: 2773| 评论数: 1|帖子模式

一:image组件binderror使用例子(对应html、js中的onerror) 
作者:无影飞絮剑,来自授权地址

binderror HandleEvent 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: 'something wrong'}

微信小程序开发中,我们使用列表包含图片,如果这个图片链接404错误,那么我们应该给它提供一个默认的友好URL地址。html和js中使用onerror事件就可以了

  1. <img src="image.gif" onerror="this.src='https:w.chesudi.com/Public/web/img/onerrorcar.png'" />

微信小程序image组件没提供onerror事件,提供了一个binderror事件来代替。

如果图片链接404,就会触发这个binderror事件,我们在绑定的事件里修改对应的数据源就好了,如下

.wxml文件

  1. <image class="carlist_img" src="{{item.img}}" binderror="binderrorimg" data-errorimg="{{index}}"></image>

.js文件 

  1. binderrorimg:function(e){
  2. var errorImgIndex= e.target.dataset.errorimg //获取循环的下标
  3. var imgObject="carlistData["+errorImgIndex+"].img" //carlistData为数据源,对象数组
  4. var errorImg={}
  5. errorImg[imgObject]="" //我们构建一个对象
  6. this.setData(errorImg) //修改数据源对应的数据
  7. }

易错点:this.setData({"carlistData["+errorImgIndex+"].img":对象})类似这样的就不正确了

二:微信小程序使用百度api获取天气信息

作者:michael_ouyang,来自授权地址 
下面介绍使用百度api来获取天气信息。

1> 第一步:先到百度开放平台申请ak 
index.php?title=wxjsapi/guide/key 

申请到ak后,在我的应用里就能查看到 

2> 第二步:配置你的request合法域名 
配置域名请到微信公众平台的后台里设置 

3> 第三步:下载百度地图的api ,链接:微信小程序JavaScript API v1.0.zip

解压后,里面有2个js文件,一个是常规没压缩的,另一个是压缩过的 
PS:由于小程序项目文件大小限制为1M,建议使用压缩版的js文件! 

4> 第四步:引入JS模块 
在项目根目录下新建一个路径,将百度的js文件拷贝到新建的路径下,完成。 
如下图所示,新建路径 "libs/bmap-wx" ,将 bmap-xw.min.js 文件拷贝至 "libs/bmap-wx" 路径下。 

5> 第五步:在所需的js文件内导入js 
// 引用百度地图,注意:require传入一个相对路径 
var bmap = require('../../libs/bmap-wx/bmap-wx.js');

6> 第六步:编辑代码 
注意:此处楼主使用的ak是随便写的,同学们需要自行申请!!! 
xxx.wxml:

  1. <view>
  2. <text>{{weatherData}}</text>
  3. </view>
  4. <view style="padding-top:30px"></view>
  5. <block wx:for="{{futureWeather}}">
  6. <view style="border:1px solid #ccc; margin:5px">
  7. <view>{{item.date}}</view>
  8. <view>{{item.temperature}}</view>
  9. <view>{{item.weather}}</view>
  10. <view>{{item.wind}}</view>
  11. </view>
  12. </block>

xxx.js:

  1. // 引用百度地图微信小程序JSAPI模块
  2. var bmap = require('../../libs/bmap-wx/bmap-wx.min.js');
  3. Page({
  4. data:{
  5. ak:"FHG7utZtdyXN23W",
  6. weatherData:'',
  7. futureWeather:[]
  8. },
  9. onLoad:function(options){
  10. var that = this;
  11. // 新建bmap对象
  12. var BMap = new bmap.BMapWX({
  13. ak: that.data.ak
  14. });
  15. var fail = function(data) {
  16. console.log(data);
  17. };
  18. var success = function(data) {
  19. console.log(data);
  20. var weatherData = data.currentWeather[0];
  21. var futureWeather = data.originalData.results[0].weather_data;
  22. console.log(futureWeather);
  23. weatherData = '城市:' + weatherData.currentCity + '\n' + 'PM2.5:' + weatherData.pm25 + '\n' +'日期:' + weatherData.date + '\n' + '温度:' + weatherData.temperature + '\n' +'天气:' + weatherData.weatherDesc + '\n' +'风力:' + weatherData.wind + '\n';
  24. that.setData({
  25. weatherData: weatherData,
  26. futureWeather: futureWeather
  27. });
  28. }
  29. // 发起weather请求
  30. BMap.weather({
  31. fail: fail,
  32. success: success
  33. });
  34. }
  35. })

7> 第七步:运行 

更多的百度地图api,可到github查看:

最新评论

笑生 发表于 2022-5-3 12:55
手游源码下载

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表