用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
  • TA的每日心情
    无聊
    2017-8-15 16:38
  • 签到天数: 42 天

    [LV.5]常住居民I

    794

    主题

    1964

    帖子

    2万

    金钱

    管理员

    论坛管理员

    Rank: 9Rank: 9Rank: 9

    积分
    0

    突出贡献优秀版主荣誉管理论坛元老

    QQ
    2016-11-21 09:43:57 zhichi_admin 管理员 楼主 03384
    以下为一些微信小程序常见问题整理,如果你有需要补充的可以在楼下回复进行补充,如果本帖内容有误,请回复,感谢!

    微信小程序里面能直接访问外部链接么
    不能



    怎么自动给每个新页面都添加一个固定的浮层?手动用template引入肯定是可以的
    才疏学浅,能想到的只是调用模板。
    定义模板
    使用name属性,作为模板的名字。然后在<template/>内定义代码片段,如:
    <template name="msgItem">
    <view>
       <text> Time: {{time}} </text>
    </view>
    </template>
    使用模板
    使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入,如:
    <template is="msgItem"data="{{...item}}"/>
    Page({
    data: {
       item: {
         time: '2016-09-15'
        }
      }
    })


    进到一个页面,校验登录,失败,跳登录页;直接执行navigateTo或者redirectTo,调试器是可以正常工作的,但是手机端不可以,可以加定时器缓解,但是好像还是没法根治,在onlunch,onShow,onload都试过,都不怎么好用,请问问题出在哪里?
    试试onReady。
    onReady        Function        生命周期函数--监听页面初次渲染完成
    这才是页面渲染完毕的回调。


    小程序里可以用iconfont之类的图标字体吗?
    一般web开发定义样式的话,有:外部样式,内部样式,内联样式。
    显然小程序没有提供link、style标签,所以定义样式的地方只有wxss文件里和内联样式。
    小程序API明确规定:本地资源无法通过css 获取。在wxss加载外部字体库目前测试也是不生效的。
    建议:background-image:可以使用网络图片,或者 base64,或者使用<image/>标签。
    小图标直接转成base64,直接写在代码里,体积也很小,还方便。图标可以统一写在一个js里,到处引用。


    微信小程序的路径是怎么计算的?
    如图,root_path的路径为什么要这样写?
    @bbmjfpig上一层 :index同级
    再上一层:information同级
    再上一层:pages同级
    你要调用pages同级的function下的js,当然要返回三层


    request合法域名怎么配置啊,有木有配置好的大神发来看看呀!

    用你申请小程序的后台账号,登录微信公众平台。
    然后点击设置,可配置服务器信息。


    请问一下,首次打开的时候会出现一个选择界面,进行选择之后进入主页,下次再打开就不再显示这个选择界面,直接显示主页,这个应该怎么实现呢?如果在一个空界面直接进行跳转,初次打开的时候空白界面会先显示一下,才会跳转对应的界面,这应该怎么处理呢?
    @bbmjfpig 目前首页的设置,默认是在app.json的pages的第一个页面。
    每次重启打开都会显示这么页面。
    如果楼主想要一个选择页面并且没有停顿体验的话,可以在首页上添加额外的view层来解决,一次显示,之后display设置none,显示与否可以在本地存储一个标识。


    微信小程序如何被用户打开,并且是自动获取用户的ID和头像的么?就是说我做了一个叫大姨吗的微信小程序,可是我怎么让别人发现这个小程序,并且登录注册进去呢?

    @bbmjfpig

    目前只是开放公测阶段,并没有正式上线。关于小程序的入口,除了分享二维码外,还有想象空间~
    获取用户信息,需要代码调用api。
    先调用wx.login 然后wx.getUserInfo 就可以获得用户的名称和头像了。
    这过程对用户来说是透明的。
    示例代码:
    1. wx.getUserInfo({
    2.   success: function(res) {
    3.     var userInfo = res.userInfo
    4.     var nickName = userInfo.nickName
    5.     var avatarUrl = userInfo.avatarUrl
    6.     var gender = userInfo.gender //性别 0:未知、1:男、2:女
    7.     var province = userInfo.province
    8.     var city = userInfo.city
    9.     var country = userInfo.country
    10.   }
    11. })
    复制代码



    微信小程序有什么办法做像div那种锚点,例如点右边的b 可以跳到b的那一行
    @抓狂狗蛋没有锚记,可以用scroll-view中的scroll-into-view     
    https://mp.weixin.qq.com/debug/w... iew.html?t=20161107


    使用ffmpeg 将silk转mp3失败,哪位大神成功过的,辛苦给下思路,不胜感激!

    @gxmzjxk 用的gitHub上面的decoder开源库,先解码silk,再转MP3


    微信小程序   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组件让你自由加载第三方页面的,安全考虑。


    <view wx:if="{{list}}">  list是数组,怎么判断条数为0
    你说的是条件渲染吗?
    也可以<view wx:if="{{list.length ==0}}"> </view>
    可以在 {{}} 内进行简单的运算,包括三元运算符、逻辑判断、算数运算


    我想在首页顶部导航上添加一个按钮,点击后跳转到另外一个页面。请问怎么实现,谢谢了
    微信小程序有相关的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不同就可以控制不同的组建了,这个相当于获取了界面元素




    官方Q&A


    怎么获取用户输入
    能够获取用户输入的组件,需要使用组件的属性bindchange将用户的输入内容同步到 AppService。
    <input id="myInput"bindchange="bindChange" />
    <checkbox id="myCheckbox"bindchange="bindChange" />
    var inputContent = {}
    Page({
    data: {
       inputContent: {}
      },
       bindChange: function(e) {
           inputContent[e.currentTarget.id] = e.detail.value
        }
    })


    为什么脚本内不能使用window等对象
    页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件



    为什么zepto/jquery 无法使用

    zepto/jquery 会使用到window对象和document对象,所以无法使用。



    wx.navigateTo无法打开页面
    一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateTo不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo



    样式表不支持级联选择器
    WXSS支持以.开始的类选择器。如:
    .normal_view {
    color: #000000;
    padding: 10px;
    }
    可以使用标签选择器,控制同一类组件的样式。如:使用input标签选择器控制<input/>的默认样式。
    input {
    width: 100px;
    }
    本地资源无法通过 css 获取
    background-image:可以使用网络图片,或者 base64,或者使用<image/>标签

    如何修改窗口的背景色
    使用 page 标签选择器,可以修改顶层节点的样式
    page {
    display: block;
    min-height: 100%;
    background-color: red;
    }


    为什么上传不成功
    为了提升体验流畅度,编译后的代码包大小需小于 1MB ,大于 1MB 的代码包将上传失败。



    HTTPS 请求不成功
    tls 仅支持 1.2 及以上版本



    网络请求的 referer
    网络请求的 referer 是不可以设置的,格式固定为https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版。


    使用道具 举报 回复
    发新帖
    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册
    咫尺论坛|小程序开发社区
    X