新版开发者工具增加了https检查功能:可使用此功能直接检查排查ssl协议版本问题: 可能原因:0:后台域名没有配置0.1:域名不支持https1:没有重启工具:2:域名没有备案,或是备案后不足24小时:备案未生效:感谢@小树提供的案例 3:ssl协议有问题:具体请参考本文: 微信小程序开发SSL证书配置,解决request fail问题 解决方法 1.Geotrust先检查下你的站点.把一些常规的问题解决掉,比如中级证书没装,等等问题. 2.微信支持,且只支持ssl_protocols TLS…
今天微信小程序发现wx.request不好使了,调试报错: 小程序要求的 TLS 版本必须大于等于 1.2 查官方文档 解决方法 在 PowerShell中运行以下内容, 然后重启服务器 # Enables TLS 1.2 on windows Server 2008 R2 and Windows 7 # These keys do not exist so they need to be created prior to setting values. md "HKLM:\SYSTEM\Cur…
前言:小程序的开发中总是踩到各种坑,看文档也不知所云: 例如当我们在写微信小程序接口时,method请求方式有POST和GET两种,为了数据安全,我们会偏向于使用POST请求方式访问服务器端: 问题:当我们使用POST方式请求时,后端无法获取数据,但使用GET方式便可以获取数据?? 解决办法: 设置请求的 header: header: { "Content-Type": "application/x-www-form-urlencoded" }, 例如:…
小程序[publib]:1 request:fail ssl hand shake error 如果用的是阿里云和宝塔那么如下解决 宝塔里面的站点SSL右侧的配置(PEM格式) 需要把 阿里云 下载的2个crt文件 都复制进去 粘贴 才行 我之前是只复制了一个public 忘记复制chain.crt了 后面2个  .crt文件 都打开 然后粘贴代码…
微信小程序中wx:for遍历默认元素为item,但是如果我们设计多层遍历的时候我们就需要自定义item的字段名以及key的键名 wx:for="{{item.goodsList}}" wx:for-item="ite" wx:for-key="idx" wx:key="{{idx}}" 这样子元素就被设置成ite了,而key则为idx…
1微信的request的post请求后台获取不到data(当初这个问题纠结了好久好久),原因是post传递的data是json格式而不是key,value的格式,所以获取不到相应的data就是post请求应为表单模式的data,微信小程序提供的datajson格式完全获取不到. 解决方法: 1.改变header header: {'Content-Type': 'application/json;charset=UTF-8;'}, 2.query的格式传递post请求就可以了,不过这个有点..你…
以下问题测试环境为微信开发者0.10.102800,手机端iphone6,如有不对敬谢指出. 根据我的测试,context.drawImage,在开发者工具中并不能画出来,只有预览到手机中显示. wx.canvasToTempFilePath wx.saveFile 官方文档中只有一行,真是坑爹啊,原来 wx.canvasToTempFilePath参数为一个对象包括canvasID,success,fail,complete,和wx.saveFile差不多: wx.canvasToTempFi…
在调取地图的时候发现,wx.openLocation的方法在模拟器和安卓手机上都可以用,在苹果手机上报错. 报错为调取失败:fail invoke too frequently                     fail invalid_coordinate 解决方法: 微信小程序默认将组件上绑定的参数都当作字符串了,所以认为坐标点不正确,强制转换成number类型即可. var lat = Number(e.currentTarget.dataset.lat),        lng =…
今天在做微信小程序时,设置wx.navigateTo页面跳转并传参数,点击始终没有效果,代码如下: //事件处理函数 newsDetail: function (event) { console.log(event), //带id跳转到指定的页面,这里的event.currentTarget.dataset.id是获取wxml页面上的data-id参数,详见事件说明 wx.navigateTo({ url: "../detail/detail?id="+event.currentTar…
这次给你们安利的是微信小程序封装storage,先说下微信官方的 wx.getStorage({ key:"", success: function (res) { }, fail(error){ } }) 官方的方法用起来很麻烦,和我们之前习惯用localStorage.getItem看这个就很别扭,你也一样对吧,别问我怎么知道的  你来这文章的时候你肯定就是不习惯官方的,没关系,我给你封装好了. 第一步.根目录新建utils目录,目录内新建一个utils.js的文件 第二步.复制下…
最近在跟着demo学习微信小程序,却卡在了第一步请求豆瓣电影api上,折腾了很久,代码如下: wx.request({ url : "https://api.douban.com/v2/movie/in_theaters", data: {}, header:{ "Content-Type":"application/json" }, success: function(res) { console.log(res.data); var data…
微信小程序建立新项目之后会出现app.json文件未接入错误如下图: 一般是因为在下图添加新项目,项目目录这一列,如果不事先建立一个空的文件夹,直接选择则不会出现quickstartup界面 所以在建立微信小程序新项目的时候,项目目录这一块要选择在你新建的某个文件夹中,不然还会出现app.json错误,或者直接建立一个文档,但是我试过貌似不可行.…
wx:if 与 hidden 都可以控制微信小程序中元素的显示与否. 区别: wx:if 是遇 true 显示,hidden 是遇 false 显示. wx:if 在隐藏的时候不渲染,而 hidden 在隐藏时仍然渲染,只是不呈现. 所以如果频繁切换的话,用 wx:if 将会消耗更多资源,因为每次呈现的时候他都会渲染,每次隐藏的时候,他都会销毁. 如果切换并不频繁的话,用 wx:if 相对来说较好些,因为它会避免初始就一下渲染那么多. wxml: <view> <text>page…
最近在折腾微信小程序,遇到这么一个情况:后端返回一个key-value的对象数据,需要遍历对象的key-value,然后渲染到视图中.就像下面这样: { '2018-1-9':{ address: '....', name: '....' }, '2018-1-10':{ address: '....', name: '....' }, '2018-1-11':{ address: '....', name: '....' } } 遇到也这种情况,有三种解决办法: 让后端改一下接口: 自己写个函…
条件渲染 顾名思义所谓的条件渲染,就是通过条件来判断是否需要渲染该代码块.条件渲染主要是用到wx:if 和 block wx:if 这两个,第一个相信好理解,第二个是在block里面进行条件渲染,这里我们特别说明一下< block/>并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性.和我们以前的逻辑编程类似,既然有了wx:if ,那么我们也会有wx:elseif和wx.else,这几个组合起来,可以使条件渲染更加灵活. 在这里官方文档中提到了一个wx:if和hidd…
由于wx.login是异步函数,导致在我们获取微信小程序返回的code去请求我们的登录接口时code的值会异常.现在用promise封装一下,将他success的结果返回,在登陆函数中await就可以了. loginwx() { return new Promise(function (reslove, reject) { wx.login({ success(res) { wx.setStorageSync("loginCode", res.code); reslove(res.co…
本来5月1之前就想写一下一篇关于小程序不同场景下发送ajax请求的问题,但是放假的前一天,出了个大bug,就是因为我修改不同的场景下执行不同的逻辑造成的 1.首先,在小程序里,微信做了很多的缓存,我们可以很好的利用这些缓存,比如,两个tab页面,我自由切换的情况下,缓存会记录我的滚动状态,切换状态,页面里radio的状态,总之所有的状态都会记录下来. 2.但是我们每次退出小程序后再次进来时,要求得重新刷新数据,这样的话,很自然就想到onshow钩子了,在onshow里,页面每次进来时都会调用,但…
wx.requestPayment 发起微信支付 timeStamp 时间戳 nonceStr 随机字符串 package 统一下单接口返回的 prepay_id 参数值 signType 签名算法 paySign 支付签名 success 接口成功回调 fail 接口失败回调 complete 接口完成回调(成功,失败都执行) 1.先调用后台接口,生产基本数据 // 获取店铺信息 Api.BalancePay({ openid: openid, amount: amount, bid: bid…
首先,在page外定义一个函数用户判断是否为空对象 var isEmptyObject = function (e) { var temp; for (temp in e) ; } 然后,在page中的onload里面调用授权 onLoad: function () { var that = this; if (app.globalData.userInfo) { this.setData({ userInfo: app.globalData.userInfo }) } else if (thi…
//使用 request(url,methods ,data).then(res => { //服务器返回数据 console.log(res ); return request(url,methods ,data) }).then(res => { //这里面的res是第二次拿到的数据 console.log(res)}) //封装request方法 const request = (url, method, data) => { var promise = new Promise((…
场景(比如:商城选地址,选优惠券): 在[页面A]中调用wx.navigateTo方法跳转到[页面B] 然后从[页面B]返回[页面A], 并将[页面B]中的一些数据传回[页面A] wx.navigateBack({ delta:1 }) 方法1:使用全局数据存储 将要传递的数据,存储在App对象上(比如globalData属性). 将要传递的数据,存储在小程序的本地数据缓存(Storage)中. 例如,我们在将要退出页面B的时候,作如下调用: //=== 1. 存储到app对象上的方式 ====…
首先,在page外定义一个公共函数用于发送获取位置的请求 var getLocation = function (that) { wx.getLocation({ type: 'wgs84', success: function (res) { // 经纬度 var latitude = res.latitude var longitude = res.longitude var aK = that.data.aK wx.request({ url: 'https://api.map.baidu…
一.request封装 request(url, data, successCallBack = function(data) {}, completeCallBack = function(data) {}, method = "GET", header = { 'content-type': 'application/json' }, dataType = 'json', responseType = 'text') { wx.request({ url: url, data: d…
1.新建一个api目录,与pages同级 2.在api目录下新建一个api.js文件 3.编写代码 const host = 'http://test.test.cn' const wxRequest = function (params, url) { wx.showToast({ title: '加载中...', icon: 'loading' }) wx.request({ url: url, method: params.method || 'GET', data: params.dat…
1.创建src下创建utils/wx-request.js const host = 'http://10.0.0.6:8081' function request (url, method, data, header = {}) { wx.showLoading({ title: '加载中' // 数据请求前loading }) return new Promise((resolve, reject) => { wx.request({ url: host + url, // 仅为示例,并非真…
在使用微信登录时,通常会在调用wx.login获取code后再通过wx.getUserProfile获取iv和encryptedData(加密数据)一起发到后端进行登录验证 在实际使用中如果在wx.login方法调用后再调用再使用wx.getUserProfile会报错 官方解释: 也就是说不能在调用方法的回调中使用wx.getUserProfule() 解决方法:使用Promise.all()方法实现平级调用 Promise.all() 方法接收一个promise的iterable类型(注:A…
1. . wx.showModal({ title: "2222步", content: currentCache ? "确定为自己城市添加步数吗" : "确定取消为自己城市添加步数吗?", showCancel: true, cancelText: "取消111", cancelColor: "#000", confirmText: "确定", confirmColor: "…
提到wx.getLocation()这个方法,大家都知道是获取地理信息的 今天用这个方法获取定位经纬度后传给后台取得附近markers标记集合, 在开发工具上都正常有标记出现 ,但是在手机测试时,死活没有显示 , 最后发现是在手机测试时,后台已经报参数不合法抛出错误通知了 原因是因为,在开发工具上获取经纬度只有小数点后5位,而我们传给后台接口的数据规定只有后6位, 这在开发工具上是正常可以请求成功,但是在手机上测试时,定位更加精确,例如"longitude":"121.534…
  获取了 N 条信息(具体有多少条不确定),如何在界面中动态呈现出来呢? .wxml 代码 <view wx:for="{{items}}" wx:for-index="index" wx:for-item="item">{{index+1}}.{{item.title}}</view> 核心代码就是 wx:for,对应一个数组. 而 wx:for-index 指明后面如果要用数组索引的话,           用什么名…
第一个页面: go_pick_time:function(e){ var that = this; var type = e.currentTarget.dataset.type; wx.navigateTo({ url : '/pages/record/picktime?type=' + type }); }, onShow: function () { var that = this; console.log(that.data); // 这里就可以抓取到设置的值 let { on_type…