热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小程序爬坑

(遇到的9个耗费时间比较长的坑及解决方案,记录一下,很多内容都是在这个论坛上找到的答案http:www.wxapp-union.com&#

(遇到的9个耗费时间比较长的坑及解决方案,记录一下,很多内容都是在这个论坛上找到的答案 http://www.wxapp-union.com)

1.background-image:可以使用网络图片和base64图片但是不可以是本地图片

2、微信小程序无法识别json格式,一眼看上去json数据没问题还没有问题 (各种转格式,就是不行)
后来参考了这篇文章解决:http://qidai.blog.51cto.com/6435621/1887272

居然是下载的文件所致,很神奇的原因

3.小程序微信登录无法返回数据中无unionid(文档中明明就说有啊,我擦,怀疑人生了。。。)

文档截图
原因是必须去微信开放平台绑定小程序(没有单独的入口,在微信公众平台处输入)后就会有了。
这里写图片描述

4.页面传值 (数组和对象都要转一下格式才能传递)

(1)传递基本数据类型

Page({
data: {
testStr: ‘xiaochengxu’
},
next: function(e){
wx.navigateTo({
url: ‘/test/test?str=’+this.data.testStr
})
}
})

Page({
onLoad:function(options){
console.log(“接收到的参数是str=”+options.str);
}
})
打印内容:接收到的参数是str=xiaochengxu

(2)传递对象

Page({
data: {
testData:{name:’username’, password:’password’}
},
next: function(e){
wx.navigateTo({
url: ‘/test/test?testData=’+JSON.stringify(this.data.testData)
})
}
})
Page({
data:{
testData:null
},
onLoad:function(options){
console.log(“接收到的参数是testData=”+options.testData);
this.data.testData = JSON.parse(options.testData);
}})
打印内容:

接收到的参数是testData={“name”:”username”,”password”:”password”}

(3)传递数组集合

Page({
data: {
list:[‘item-A’,’item-B’]
},
next: function(e){
wx.navigateTo({
url: ‘/test/test?list=’+JSON.stringify(this.data.list),
})
}
})
Page({
data:{
list:[]
},
onLoad:function(options){
console.log(“接收到的参数是list=”+options.list);
this.data.list = JSON.parse(options.list);
}})
打印内容:接收到的参数是list=[“item-A”,”item-B”]

统一处理:

var dealParam = function(data) {

for(var i in data) {if (typeof data[i] == ‘string’){console.log(“key=”+i+“; value=”+data[i]);} else if (typeof data[i] == ‘object’) {dealParam(data[i]);}}

}

5.宽高百分比无效 建议使用vm 和vh做

6.POST请求 这是个大坑(文档看起来超简单,我各种找后端同学调试都不行,后端同学都恼了。。然后去百度了一下,才知道这个坑啊。。。。。抱头痛哭)

这里写图片描述
post强求必须遵循下面的规则
(1) ‘Content-Type’: ‘application/json’用在get请求中没问题.
POST请求就不好使了.需要改成: “Content-Type”: “application/x-www-form-urlencoded”
(2) 加上method: “POST”;
(3)data: { cityname: “上海”, key: “14e11ba70” }写成json格式这样也是请求不到数据的.需要转格式.方法入下
function json2Form(json) {
var str = [];
for(var p in json){
str.push(encodeURIComponent(p) + “=” + encodeURIComponent(json[p]));
}
return str.join(“&”);
}

7.必须用Https的接口 还要去微信后台配置一下合法域名

(1)域名必须后台设置

这里写图片描述

(2)必须使用HTTPS
(3)配置域名可以同时配置多个域名,使用+号即可
(4)最多配置十五个
(5)一个月最多修改五次,请谨慎修改

8.多个input 设置auto_focus会导致安卓设备崩溃,只设置一个或者不设置解决问题

9.登录授权如果用户拒绝了,我们就无法再掉用微信登陆了,只能原生登陆和微信登录两手抓吧,或者在小程序wx.getuserInfo之前弹框提示用户一定要允许获取权限。再请求wx. wx.getuserInfo

作为一个IOS开发工程师小程序从开发到上线我只用了2个周。开发简单,体验跟app差不多。虽然短期内很多人都唱衰微信小程序,但是我感觉还是很有前途的。估计用不了多久许多小体量的公司,和线下商户就活跃起来了。


推荐阅读
author-avatar
mobiledu2502924121
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有