小程序开发常见问题

1.小程序如何实现页面间的跳转?

之前想在页面间做个跳转,想直接写在index.wxml中,类似于HTML中a标签的href属性,但没有看到官方的相关说明,官方以页面栈的方式维护了当前的所有页面,同时提供了一系列api供开发者使用,其中可以实现跳转的功能页面有5个。分别是:
(1)wx.navigateTo(OBJECT)
保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。注:目前页面路径对多只能十层。
(2)wx.redirectTo(OBJECT)
关闭当前页面,跳转到应用内的某个页面。
(3)wx.reLaunch(OBJECT)
关闭所有页面,打开到应用内的某个页面。
(4)wx.switchTab(OBJECT)
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
(5)wx.navigateBack(OBJECT)
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层。
最后通过小程序的事件机制实现了页面间跳转。

//index.wxml
<view class="usermotto">
    <text class="user-motto" bindtap="goProductPage">{{motto}}</text>
  </view>
//index.js
goProductPage: function (e) {
    wx.navigateTo({
      url: '../product/product', //相对路径
      success: function () {
        console.log('进入了成功的回调');
      },
      fail: function () {
        console.log('进入了失败的回调');
      }
    })
  }

2.小程序如何发布?

构建好自己的小程序后如何发布呢?自己在小程序的后台找了好久,只看到了下面这张图,后来才知道要在微信开发者工具中先提交代码,提交后在后台的“开发管理”菜单下的“开发版本”里看到对应版本,然后再提交审核即可,提交后可以看到“审核版本”里多了一条记录,一般审核要1-3天。


参考官方文档

3.怎样修改小程序的默认启动页面

在每个小程序的app.json页面会包含一个pages属性的配置项,该配置项是一个数组,每一项都是字符串,来指定小程序由哪些页面组成。每一项代表对应页面的【路径+文件名】信息,数组的第一项代表小程序的初始页面。
所以修改该数组的第一项就修改了小程序的默认启动页面。

3.小程序要审核多久?

一般审核要1-3天。我的第一个小程序提交审核后第二天拿到了审核结果。审核失败后把具体原因提示给你,你根据具体原因修改后再提交即可。
第一次提交审核失败原因

4.如何改变小程序的标题?

wx.setNavigationBarTitle({
      title: '附近门店'
    })

5.如何调起扫一扫功能?

 wx.scanCode({
      success: (res) => {
        console.log(res)
      },
      fail:(error) =>{
        console.log(error)
      }

6.能否设置导航条的字体?

在app.json文件里可以配置导航条字体的颜色和背景色,文字的大小无法改变。

{
  "pages": [
    "pages/productList/productList",
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "门店数字化营销",
    "navigationBarTextStyle": "black"
  }
}

7.小程序如何通过路由传递参数?

从列表页跳转到详情页
(1)在列表页(xxList.wxml)绑定事件

 <view class="product-img" bindtap='goproductDetail' id="{{item.id}}">
          <image src="{{item.imgSrc}}"/>
  </view>

(2)在列表页(xxList.js)通过事件对象获取参数

 goproductDetail:function(event){
    let that = this;
    let chosenPrdId = event.currentTarget.id
    wx.navigateTo({
      url: `../productDetail/productDetail?productId=${chosenPrdId}`,
      success: function () {

        wx.setNavigationBarTitle({
          title: '产品详情'
        })
      },
      fail: function () {
        console.log('进入了失败的回调');
      }
    })
  }

(3)在详情页(xxDetail.js)获取路由参数

 onLoad: function (option) {
    console.log(option.chosenPrdId); //选择的id
    // TODO 访问后台接口查询具体信息

  }

8.小程序如何发起请求?

   wx.request({
      url: 'http://127.0.0.1:3000',
      data:{
        userInfo: e.detail.userInfo
      },
      method:'GET',
      header:{
        'content-type': 'application/json' // 默认值
      },
      success:function(res){
        console.log(res.data);
      }
    })

9.wx.request想要连接localhost怎么做?

在微信开发者工具--设置--项目设置--勾选不检验域名。(我的微信开发者工具版本是1.02.1806120,平台是ios)

10.小程序request请求方法为POST为什么访问不到,而get却可以?

开始以为是自己参数的问题,去网上找了很多答案,例如把header参数 'content-type':设为'application/x-www-form-urlencoded',不起作用,依然404。继续找,在一篇博文为中看到request的合法域名要是类似
https://XXX.com这样的,不能是类似https://www.XXXX.com这样的,看到这突然意识到可能是自己连接本地127的问题,于是在网上随便找了个https的post请求,报错400,提示参数格式不对,而不是接口找不到。

初次接触小程序,理解不正确的地方请多多赐教。

posted @ 2018-07-12 16:27  Julie在进化  阅读(950)  评论(0编辑  收藏  举报