微信小程序常见问题及新手跳坑指南 每日更新 欢迎补充

以下为一些微信小程序常见问题整理,如果你有需要补充的可以在楼下回复进行补充,如果本帖内容有误,请回复,感谢!

微信小程序   navigateTo 只能使用五次  五次之后无效  怎么处理的?
答:

不是只能跳转5次,而是跳转层次只能是5层,注意理解。

页面一层一层往里跳进,最多5层。是这个意思。


微信小程序中能否用js更改app.js中的globalData?怎么实现?
不能更改的话怎么实现在当前页面中设置一个属性,在另一个页面中也能显示出来?

答:

可以修改啊,globalData只是设置在app.js 的一个object数据,你可以直接改的。

比如:
在globalData里有一个users = ['张三', '李四'];

在任意一个js里可以修改:getApp().globalData.users = ['王五', '赵六'];


wx.showToast({  title: '成功',  icon: 'success',  duration: 2000})这个代码在开发工具里面提示不了啊,请问各位是怎么解决的?开发工具只能提示  求大神帮忙看下

答:

现在是有这样的情况。IDE的代码提示和官方API不一致。

类似问题还有,IDE可以使用的组件,手机上不可以正常显示等。

版本问题,只能微信解决。在这之前,请手动敲入!!!
开发者工具还美更新吧,看了下文档toast即将弃用,使用wx.showToast,但是开发者工具里还没更新


1、php自己的session是用来判断用户是否登录的,windows+apache的话,小程序的session咋存储。是存储到数据库中???还是哪???
2、wx.login中的code哪个是用户的唯一标识?是openid吗??

答:

小程序在本地存储一个秘钥,每次请求的时候带过去,服务端校验这个秘钥,如果合法,返回成功和对应的数据


微信的check方法里面的参数是什么?
答:


微信小程序的用户信息可以做登录吗?请问小程序的用户信息可以做登录吗,只有头像和昵称,都没有唯一标识
答:

获取微信信息有唯一标识

 

这个应该是要和后台配合,自己生成一个session作为唯一标示,不能用openid


swiper插件使用问题

感觉没办法,组件的体验需要微信的优化,组件都是封装好的改不了


小程序 post 参数一直进不去 服务器端没接收到。



我试了下,php框架使用ThinkPhP。请求代码:
wx.request({
          url: 'http://localhost/api/getList',
          data: {lastid:lastid,limit:limit},
          header: {
              'Content-Type': 'application/json'
          },
          method:'post',
          success: function(res) { 
                var cc = res.data;
          },
          fail: function(res){  },
          complete: function(){  }
      })


post数据:
 

后台代码(查询后返回,使用ajaxReturn返回数据到前端):
function getList(){    
            $list = M('mmc')->field('id,title,img,cTime')->limit($limit)->select();
            $this->ajaxReturn($list);
}

前端接收到的数据(success函数回调的res):


关于php无法接收微信小程序POST传参

刚刚开始按照微信官方的方法写了一个POST传参,后台使用php进行解析入库。
但是突然发现GET能接收到传参,但是后台$_POST死活都没办法进行传参。
  1. wx.request({
  2.       url: 'http://localhost/XXX.php',
  3.       data: {
  4.         menu: data.detail.value.menu ,
  5.       },
  6.       /*header: {
  7.           'content-type': 'application/json'
  8.       },*/
  9.       method:'post',
  10.       success: function(res) {
  11.         console.log(res.data)
  12.       }
  13.     })
复制代码

查了资料,都说是
  1. 'content-type': 'application/json'
复制代码

大小写的问题。但是我把它改成小写了还是不行。
后来仔细研究了发现,微信小程序通过POST的不是字符串,而是JSON信息,所以在后台是无法直接用$_POST进行解析的。

这个是我们正常POST信息浏览器对后台文件发送的post信息

这个是小程序POST的信息,所以我们就要处理一下才行了

php获取信息如下:
  1. $menu = file_get_contents('php://input');
  2. $val = json_decode($menu,true);
  3. echo($val['menu']);
复制代码

把json转换成数组以后就可以正常的进行数据处理了!


小程序里的console在wing工具哪里看

点击调试即可


之前已认证的公众号不能用作开发小程序吗?

小程序是和订阅号、服务号以及企业号平行的新类型,所以需要在微信公众平台申请一个新的小程序号,需要重新认证。


特别好奇 微信小程序能不能支持发送图标到桌面这个功能

安卓应该可以,苹果不行


微信小程序没有提供webview组件吗?

首先微信内跳转普通H5页面时,跳转地址是需要在国内备案的,否则会有警告提示。
以微信的尿性,我个人估计小程序是不会提供webview组件让你自由加载第三方页面的,安全考虑。


[table=98%]
[tr][td]<view wx:if="{{list}}">  list是数组,怎么判断条数为0

你说的是条件渲染吗?
也可以<view wx:if="{{list.length == 0}}"> </view>


可以在 {{}} 内进行简单的运算,包括三元运算符、逻辑判断、算数运算


[table=98%]
[tr][td]
我想在首页顶部导航上添加一个按钮,点击后跳转到另外一个页面。请问怎么实现,谢谢了

微信小程序有相关的API:

wx.navigateTo(OBJECT)

保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。

OBJECT参数说明:

参数        类型        必填        说明
url        String        是        需要跳转的应用内页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'
success        Function        否        接口调用成功的回调函数
fail        Function        否        接口调用失败的回调函数
complete        Function        否        接口调用结束的回调函数(调用成功、失败都会执行)
示例代码:

wx.navigateTo({
  url: 'test?id=1'
})
//test.js
Page({
  onLoad: function(option){
    console.log(option.query)
  }
})
注意:为了不让用户在使用小程序时造成困扰,我们规定页面路径只能是五层,请尽量避免多层级的交互方式。

wx.redirectTo(OBJECT)
关闭当前页面,跳转到应用内的某个页面。

OBJECT参数说明:

参数        类型        必填        说明
url        String        是        需要跳转的应用内页面的路径
success        Function        否        接口调用成功的回调函数
fail        Function        否        接口调用失败的回调函数
complete        Function        否        接口调用结束的回调函数(调用成功、失败都会执行)
示例代码:

wx.redirectTo({
  url: 'test?id=1'
})
wx.navigateBack(OBJECT)
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层。

OBJECT参数说明:

参数        类型        默认值        说明
delta        Number        1        返回的页面数,如果 delta 大于现有页面数,则返回到首页。



举个例子:
点击一个按钮后跳转

  buttonClick:function(e){
    var agrs ='我是参数';
    wx.navigateTo({
        url: '../order/order?order=' + agrs
    })
  },

其中的URL是工程里目标页面的相对路径。
至于你说的导航条左上角的按钮,需要自己去做UI,以上是逻辑层面的。


想开发一个社交小程序 程序里面产生动态能提示用户么?

微信的概念是不打扰用户,肯定不能随便给用户弹消息,但是有模板消息 是专门做消息通知的


想做个本地垂直类的服务型项目。小程序试用吗

非常适合,试水成本也不高


怎么让<swiper>充满整个屏幕啊

宽高都设置为100%,试试看


微信小程序多个组件动画,官方教程上都是单个组件的动画比如

  1. var animation = wx.createAnimation({
  2.         duration: 1000,
  3.         timingFunction: "ease",
  4.         delay: 2000
  5.       })
  6.       this.animation = animation
  7.     
  8.       animation.scale(1).step();
  9.       this.setData({
  10.         AvatarShow:animation.export()
  11.       })
  12. <image class="avatar" animation="{{AvatarShow}}" src="{{userInfo.avatarUrl}}"></image>
复制代码


这样的,但是我想让这个动画执行完毕了以后,控制

  1. <text class="userinfo-nickname">欢迎您:{{userInfo.nickName}}</text>
复制代码


其他的组件做动画效果应该怎么做呢?


  1.     rotateThenScale: function() {
  2.         this.animation.rotate(Math.random() * 720 - 360).step()
  3.             .scale(Math.random() * 2).step()
  4.         this.setData({ animation: this.animation.export() })
  5.         setTimeout(function() {
  6.             this.animation2.rotate(Math.random() * 720 - 360).step()
  7.                 .scale(Math.random() * 2).step()
  8.             this.setData({ animation2: this.animation2.export() })
  9.         }.bind(this), 3000)
  10.     },
复制代码


比如这个是我修改的官网示例,animation不同就可以控制不同的组建了,这个相当于获取了界面元素

 

转载于:https://www.cnblogs.com/youli222/p/6062654.html

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值