zoukankan      html  css  js  c++  java
  • 微信小程序常见问题及新手跳坑指南 每日更新 欢迎补充

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

    微信小程序   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不同就可以控制不同的组建了,这个相当于获取了界面元素
  • 相关阅读:
    人工智能背后的故事
    idea 开发插件。
    安卓工作室 Android studio 或 Intellij IDEA 美化 修改 汉化 酷炫 装逼 Android studio or Intellij IDEA beautify modify Chinesization cool decoration
    安卓工作室 android studio文件和代码模板,以及汉化出错问题
    安卓工作室 android studio 汉化后,报错。 设置界面打不开。Can't find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label
    android studio的汉化 教程 及解析
    安卓工作室Android Studio 快捷键
    安卓工作室 android studio 的 汉化 美化 定制 Android studio's Chinesization beautification customization
    VR开发 VR development
    Lakeshore 中文开发界面,示例项目,飞机大战 等 Lakeshore Chinese development interface, sample project, aircraft war, etc
  • 原文地址:https://www.cnblogs.com/youli222/p/6062654.html
Copyright © 2011-2022 走看看