微信开发中遇到的问题_微信开发中newdate 遇到的问题 - CSDN
  • 开发遇到问题: 1.image设置图片的时候图片在开发工具上面显示,可是运行到手机上面不显示。仔细查看是不是先图片的时候。设置路径不小心在后面加了空格。 例如: 正确:手机上显示 错误:手机上不显示 src里面的...
    开发遇到问题:
    1.image设置图片的时候图片在开发工具上面显示,可是运行到手机上面不显示。仔细查看是不是先图片的时候。设置路径不小心在后面加了空格。
    例如:
    正确:手机上显示
    <image class="icon_tubiao" src="../../image/my_jianzhi.png"></image>

    错误:手机上不显示 src里面的内容后面不小心加了空格
    <image class="icon_tubiao" src="../../image/my_jianzhi.png "></image>

    2.数据传值的问题:传值的方法。(案例例如一个for循环。然后点击item需要知道点击的是第几个item。)


    在view上面加一个属性id="需要得到的值"
    然后设在点击事件。在js里面的这个函数里面获取。
    在函数里面,参数是event。通过
    event.currentTarget.id来获取。
    代码如下图:

    (2)第二种传数据的方法

    view里面加个属性为data-value=“值” data是前缀。后面跟一个变量名。这个名字自己可以随意定义。例如data-pos等等。
    然后给view事件加了点击事件。有个函数名
    js里面获取 在函数里面,参数是event。通过
    记住一定要是event.currentTarget.dataset.value;由于之前写的event.target.dataset.value总是得不到。
    var value=event.currentTarget.dataset.value;来获取(view里面data-变量)
    获取的时候
    (view里面data-变量
    event.currentTarget.dataset.变量; 就算data后面跟的名字跟获取这里的名字一直就可以获取到。变量名可以自己定义
    代码如下图:

    3.A B2个页面a跳转到B 。然后b选择后关闭 如何给A里面的变量赋值
    在B的js文件里面做处理:
    在B的js文件里面做处理给A里面的变量赋值
    var pages = getCurrentPages(); //得到所有的页面
    var prevPage = pages[pages.length - 2];//上一个页面。
    //给上一个页面的变量赋值
    prevPage.setData({
    account: card_number
    })
    关闭当前页面:
    wx.navigateBack({
                delta: 1, // 回退前 delta(默认为1) 页面
                success: function (res) {
                    // success
                },
                fail: function () {
                    // fail
                },
                complete: function () {
                    // complete
                }
            })
    例子如下图:


    4.css属性
    border-radius:15px;设在圆角

    5.
    记住判断是所有的逻辑都要放在{{}}里面。错误写法wx:if="{{item.sign_way}}==3"
    正确写法wx:if="{{item.sign_way==3}}"

    6.小程序学习地址:

    7.map
    里面的属性controls是在界面上的绝对位置。不随地图来回移动。

    8.
    给data数据赋值的代码:例子
        markertap: function () {
            var hidden = false;
            var that = this;
            if (this.data.isHidden) {
                hidden = false;
            } else {
                hidden = true;
            }
            that.setData({
                isHidden: hidden,
            })
        }




    展开全文
  • 本文章总结小程序开发中常见的错误问题。希望能帮助初学者少走弯路,避免类似的错误。 1:出现“脚本错误或者未正确调用Page()”的错误提示。 解决方法:出现这个错误的原因通常是因为map.js (即对应页面的...

    本文章总结小程序开发中常见的错误问题。希望能帮助初学者少走弯路,避免类似的错误。


    1出现“脚本错误或者未正确调用Page()”的错误提示。


    解决方法:出现这个错误的原因通常是因为index.js (即对应页面的js文件)里,没有调用Page方法。即使js文件里没有任何代码,也需要在js里添加一个空的 Page({ })。注意Page的P要大写。

    2出现“Expecting ‘String,‘Number,‘NULL,‘True....’”’’的错误提示。


    解决方法这个错误的原因在于index.json( 对应页面的json文件 )里没有加入{ }。即使json文件里没有任何内容,也需要加入一个{ },作为默认代码。此外,json文件不允许出现注释代码,如果有注释的代码,同样会报这个错误。

    3出现警告信息“ Now you can provide attr "wx:key" for a "wx:for" to improve performance”的问题。


    解决方法首先,这只是一个警告信息,不是错误信息,不理他不会对程序运行有任何的影响。官方文档原话:如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。如果你一定想去掉这个警告,可以在wx:for的组件属性里增加一个 wx:key="unique",unique请替换成数据绑定列表里的任意一个字段的字段名,比如文章列表数据中的字段“postId”,即wx:key="postId"。不建议使用wx:key="*this"。其实wx:key用来对列表渲染的数据指定一个"主键”,以加快列表渲染的速度。

    4: 出现“ Failed to load image  xxxxx: the server responded with a status of 404 (HTTP/1.1 404 Not Found) From server 127.0.0.1”

    解决方法出现这种错误,通常是由于图片的路径不对而引起的。若是外网的图片,就是你外网的图片url错了(因为它没有相对和绝对的路径概念)。现在只说说本地的图片路径问题。有这么一种情况,如果图片路径被写在一个A.js文件里,而B.js文件引用了A.js,此时图片的路径必须是相对于B.js的相对路径。建议最好在公共的js文件里使用绝对路径。

    5:小程序如何快速创建页面文件?

    解决方法:微信小程序官方文档并没有给出一次创建四种类型页面文件的方法。但在实际开发过程中有人发现了快速创建四个文件的方法。步骤:在app.json文件下pages数组里,添加一个页面的路径,如果这个路径指向的是一个不存在的文件,那么MINA框架会自动创建这个页面的四个文件。我们可以试一下,在app.json文件的pages数组里添加一项 “pages/demo/demo”,然后保存项目,奇迹发生了!(哇!)用这种方式创建文件不仅快捷,而且页面文件会自动添加一些默认代码,防止出错。



    展开全文
  • 这个问题是首先要解决的,刚开始开发微信小程序,由于设置的不校验域名,所以忽略了这一点,等上线后才发现,里面数据全是空的,因为小程序环境没配置好。小程序环境需要https支持,也就是需要安装ssl证书,然后我就...

    1、小程序环境配置的问题

    这个坑确实的个大坑,因为这个是开发微信小程序的基础,配置不好就没法使用小程序。

    这个问题是首先要解决的,刚开始开发微信小程序,由于设置的不校验域名,所以忽略了这一点,等上线后才发现,里面数据全是空的,因为小程序环境没配置好。小程序环境需要https支持,也就是需要安装ssl证书,然后我就买了证书安装上,参考着百度经验里面的教程,很快就安装好了,一切都设置好后,也能正式访问了。

    SSL证书

    然后打开微信小程序配置,开启校验域名,结果发现微信小程序里面还是报错,查找报错原因,是因为我配置的SSL证书是TLS1.0,而微信小程序要求是TLS必须大于等于1.2。既然找到了问题,那就去解决它,但是又发现windows2003的系统不支持TLS1.2,无奈只好把服务器系统重装,装成windows2008R2系统,装好后,重新配置环境,重新安装证书,结果装上后,TLS还是1.0。

    郁闷了,最后百度查找了很多资料,然后尝试着解决均告失败,正在一筹莫展的时候,突然看到了一篇英文文章,讲的大意就是如何将win2008R2系统ssl证书TLS1.0升级为1.2,赶快按照上面的方法试试,结果还是失败了。怎么回事呢?根据以往的经验感觉应该不是配置的问题,猜测是不是iis配置没生效引起的。为了保险起见,干脆直接重启服务器试试,结果奇迹出现了,升级TLS1.2成功。

    2、json格式转换问题

    微信小程序接收的数据json数据,所以需要把数据类型转化为json,这个相对比较简单一些,网上有很多转换的代码,直接加上去就可以了。php的json转化代码不多赘述了,值得一提的是asp格式转换为json的时候比较麻烦一些,走了一些弯路,最直接的方法就是拼凑法,将asp的数据拼成json格式就可以了。但是需要注意一些html标签,需要过滤掉,因为微信小程序里面不支持html标签。

    3、富文本的问题

    微信小程序无法加载html标签,同时数据渲染也无法渲染wxml标签,因为微信小程序本身是不支持富文本的,所以出来的格式很难看,并且给人很呆板生硬的感觉,想像网页一样表现的丰富一些,就需要引入第三方wxParse.js,(至于如何导入,如何使用,网上有很多资料,在此不再多说,很简单,自行百度即可)。因为我开发的用户比较多,有一部分用户已经有电脑站,手机站,微信站了,现在需要在此基础上再开发小程序,那么就需要调用原来的数据库。如果是php+mysql的还好弄点,有些站是asp的,asp在处理富文本这个问题上,比较复杂一点,我的解决方法是,先将asp获取的数据进行过滤,过滤所有不支持的html标签,只保留wxParse支持的一些html标签,然后再引入wxParse.js进行解析,这样就可以了。

    4、微信小程序app.json里pages数组中路径顺序问题

    这个坑有点深,之前没注意,后来加了底部的tabBar才发现,原来这个顺序和底部的tabBar有很大关系。配置tabBar时,list参数中的pagePath参数至少需要包含app.json里pages数组中的第一个路径,否则会导致tabBar不显示。

    5、微信小程序底部菜单tabBar跳转无法带参数问题

    开发微信小程序的都会碰到过,就是小程序底部菜单跳转的时候,是不能带参数的,这个问题也很好解决,直接把需要传递参数的页面在跳转前将数据添加到全局数据app.js里。需要接受参数的页面在onShow方法接收之前,添加到app.js的数据就可以了

    6、微信小程序使用POST方法请求的问题

    这个坑也是不小的坑,微信小程序发起wx.request()方法请求,用get方法请求都没什么问题,但是用post方法请求时,就容易出现这样或那样的问题,原因是wx.request()使用post方法请求时,还需要加上header,header[content-type]值为application/x-www-form-urlencoded,否则请求返回失败。

    微信小程序

    7、微信小程序中屏幕自适应问题

    在设计wxss样式的时候,尽量使用rpx单位,rpx单位是微信小程序中css的尺寸单位,rpx可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。当然微信小程序也支持rem尺寸单位,rem和rpx的换算关系:rem: 规定屏幕宽度为20rem;1rem = (750/20)rpx

    8、微信小程序的图片宽度和高度问题

    在微信小程序image图片标签中,如果在样式中只设置了图片的宽度,而没设置图片的高度,或者高度设为auto(自动)100%,都会导致图片不显示,必须指定图片的高度才能显示。不过image标签封装了mode属性,可以根据需求自行设置。

    展开全文
  • 微信小程序发布到现在有段时间了,公司内部正在做一个小程序的项目,做的过程踩到了不少问题,这里说一下遇到问题和解决方案,希望能帮到正在做的人,也希望又正好的解决方案的人可以给我提供意见和建议,谢谢!...

    微信小程序发布到现在有段时间了,公司内部正在做一个小程序的项目,做的过程中踩到了不少问题,这里说一下遇到的问题和解决方案,希望能帮到正在做的人,也希望又正好的解决方案的人可以给我提供意见和建议,谢谢!

    1.小程序底部导航条设置未显示问题

    这两个地址逻辑上是一个页面,如果你设置的不是一个页面,就会导致底部导航条不显示。

    2.如何更改小程序别的页面的顶部标题

    小程序每个页面都有一个顶部标题,这个标题是在app.json中的navigationBarTitleText,进行设置的,
    如果别的页面不设置就默认全显示app.json中的标题,如果需要每个页面有自己的标题,
    就需要在当前页面的文件夹下建一个xxxx.json的配置文件,navigationBarTitleText:“xxxx”,就可以进行设置了。

    3.如何在页面之间传参数

    譬如从列表页跳转到详情页,这样需要传相应内容的id到详情页

    可以再绑定点击事件的地方 加上data-XXXX 里面是内容的id 这样通过bintap的事件就可以拿到相应的参
    在通过下面的方法就可以拿到id 在进行跳转就行了,id在详情页会带到options中console.log(options),就可以看到从列表页带过来的id了。

    4.picker组件取值问题

    小程序没有select option 的下拉菜单(至少本萌新不太会做。。。),通过picker实现的选择,在选择相应的值进行查询的时候遇到了一个问题,picker的change事件拿到的是当前值在数组中的位置,想要往后台传值进行查询的话一般会传id,这里我第一个方案是把id放在picker的data-id={{id}}上,这样确实取到id了,但是取到的却总是上一次选择的id,然后就换了一个方案,通过this.data.数组名,可以获取到当前page下data里面的某个数组 在把获取到的值传到数组名里面,就可以拿到相应的值了
    代码如下,这个项目里有三个筛选,我都是这么进行操作的,感觉吧。。。并不是很好,希望有大神看到可以给出更好的方法。

    5.浮动问题

    写页面的时候总是会用到浮动,就会出现相应的浮动问题,其实这个问题不大,在群里看到有人问过,就说一嘴,大神可忽略。。。html里面是通过添加<div class="clear"></div> clear中的样式是clear:both;然后把这层div放到浮动div底下 就会取除下面的dom的浮动问题,小程序中是一样的,添加<viewclass="clear"></view> 就可以了。

    6.公共部分的代码(譬如在拼链接时的path)

    听同事说小程序最大上传只能有1M(但是我没找到哪里有说。。),不过为了少写点代码,可以把一些东西提成公共的部分,譬如path

     
    这里就把path的app.js全局变量设置好了,然后在需要的页面里通过 var app = getApp(); var path = app.globalData.path;就可以拿到在app.js里的全局变量了,剩下的就是拼字符串了,同理与样式表,公共的样式最好提成一个文件夹,通过@import 的方式引入,js同理,这样代码也会好维护很多,操作起来也方便很多。(然而我的项目在尝试的时候并没有注意这个问题,每个页面就是每个页面的,现在在忙于提出公共部分,唉说多了都是泪)。

    7.navigaterTo和navigaterBack

    navigaterTo可以再url后面还拼参数,这样可以把需要的参数带到别的页面,navigaterBack是无法往回带参数的然后有的时候需要去别的页面插值的时候需要往上一级页面传参,这里我是用的setStorage的方式写入缓存中,这样在上一级页面的onShow中可以再进行塞值处理
    这样就可以往上一级页面传值并显示了,我这里的是表单组件,input中虚显示查询页面返回的信息,没想到别的处理方案,这样进行处理的。如果有好的方案敬请告知,谢谢!

    8.获取openId和session_key

    通过调用login的方法,可以返回一组数据 通过data.code可以拿到api中需要的js_code另外两个一个是appid 另外一个是秘钥 这个在小程序里面可以再设置中找到,具体参数可以参考api文档,里面提供了接口地址。

    9.真机调试

    真机调试的时候首先需要把接口的http改成https,需要配置自己的域名,貌似一个月只有三次,需谨慎。。。。android上调试没有问题,但是ios上会出现ssl错误,

    这个需要在服务器那边进行配置,具体咋配置的我就不知道了,只是知道会有这么一个问题。


    我遇到的问题目前就这么多了,其实现在想想有些也不算问题,多看文档就行了,希望看官大人们多提意见,又不对的地方指出告诉我,我会虚心接受的。谢谢!

    展开全文
  • 1、原生组件的层级问题 video、canvas、camera等原生组件层级最高,其他组件无论z-index为多少,都无法覆盖在原生组件上。 这里拿video组件做示例,如果需要点击视频支持微信开放能力,例如授权手机号,获取用户信息...
        

    1、原生组件的层级问题

    video、canvas、camera原生组件层级最高,其他组件无论z-index为多少,都无法覆盖在原生组件上。

    这里拿video组件做示例,如果需要点击视频支持微信开放能力,例如授权手机号,获取用户信息等,必须要利用button组件,如果在原生组件外层添加button组件,点击视频并不会触发button事件,代码如下,这里点击视频并不会弹出授权手机提示,触发getPhoneInfo函数。

    <button open-type='getPhoneNumber' bindgetphonenumber='getPhoneInfo'>
        <video src="{{videoUrl}}"></video>
    </button>

    解决办法:利用 cover-view 组件,原生组件只支持嵌套cover-viewcover-image组件,且cover-view内可以使用button
    代码如下,同时用css隐藏button,并全覆盖video即可实现点击视频弹出授权手机提示,此时点击控制栏无效。这里视频是自动播放不可控,如果需要控制视频或者是自定义播放按钮图标等,可以在button内嵌套cover-image自定义即可。

    <video src="{{videoUrl}}" autoplay controls="{{false}}">
        <cover-view>
            <button open-type='getPhoneNumber' bindgetphonenumber='getPhoneInfo'>
                <cover-image src="{{imgUrl}}" />
            </button>
        </cover-view>
    </video>

    tipsvideo的层级问题在开发者工具中不会显露出来,z-index会起作用,一定要在真机上测试。

    2、ios和android部分组件表现的差异

    ios

    video微信最小化后正在播放的video会暂停,需要再次点击播放按钮,如果视频设置的是不可控,没有开始播放按钮,视频暂停了就无法继续播放了,android没有该问题。

    <video id="video" src="{{videoUrl}}" loop autoplay controls="{{false}}">
    </video>

    解决办法:创建video上下文VideoContext 对象,页面每次onShow的时候执行相应操作。

    onReady: function () {
        this.videoContext = wx.createVideoContext('video')
    },
    
    onShow: function () {
        if (this.videoContext) {
            this.videoContext.play()
        }
    },

    android

    input限制了输入的最大长度,达到最大长度后再次输入是没有显示的,但是inputvalue值包含最大长度后面的输入。

    <input bindinput='phoneChange' maxlength="4" type="number" />
    phoneChange: function(e){
        console.log('e.detail.value) 
        //小键盘输入12345,实际获取到的ios的值为1234,android是12345,input组件显示的是1234
    }

    3、登录之后的session_key失效

    冷启动进入小程序,app.jsonLaunch调用登录接口,通过登录code,后端拿到session_key之后,后续可解密encryptedDatagetPhoneNumbergetUserInfo),校验用户信息signature(getUserInfo),如果后续用户一直是热启动进入小程序,不会在onLaunch中重新登录,同时用户没有在小程序有过操作从而延长session_key的有效期,后续操作就会出现session_key失效,报错。

    解决办法:onShow中调用登录接口,同时为了避免没必要的调用,可通过wx.checkSession( )检查登录状态是否过期,如果过期就重新登录,代码如下。

    onShow: function () {
        wx.checkSession({
            success: () => {
                wx.login({
                    success: res => {
                        if (res.code) 
                            wx.request({  // 换取openid,session_key等信息
                                url: 'https://test.com/onLogin',
                                data: {
                                    code: res.code
                                },
                            })
                        }
                    },
                })
            },
        })
    },
    

    4、预览文档问题

    两种方法

    1 web-view组件

    在微信后台设置好域名后直接调用

    <web-view src="{{url}}"></web-view>

    如图所示:

    图片描述

    但是android会下载该文件,这并不是用户想看到的,也可以考虑用以下方法。

    2 wx.openDocument( )

    wx.downloadFile({
        url: 'http://example.com/somefile.pdf',
        success: function(res) {
            const filePath = res.tempFilePath
            wx.openDocument({
                filePath: filePath,
                success: function(res) {
                    console.log('打开文档成功')
                }
            })
        }
    })

    效果图如下:

    图片描述

    对比两个方法的效果图,可以看到方法2是跳出了小程序的,无法使用小程序提供的功能菜单了。

    展开全文
  • 微信小程序发布到现在经手的小程序也有好几个了,开发过程多少会遇到一些坑,这里汇总一下开发中遇到过的坑与小程序开发技巧。 首先我要先吐槽一下mpvue。 由于我之前做过的小程序全部都是原生开发,最近的一个...
  • 原本从事的是ARM-linux嵌入式开发岗位,随着时间的推移觉得乏味,于是自学了微信小程序开发,现在将开发中遇到的一些坑总结一下,对新手开发或许有点帮助。  问题1:后台服务器搭建后,从开发者工具上设置不校验...
  • 微信小程序的开发过程,会遇到各式各样的问题,本文主要是针对自己开发中遇到问题,找到解决方案后的记录总结。 1.控件同时使用wx:if和wx:for导致无效的问题 这个问题是一个朋友问到的,场景是一个类似...
  • 开发微信公众号遇到的一些问题: 1 验证签名: 需要引入的文件: //sha1加密  //微信js 参与加密的串:  var shareUrl = window.location.href;//当前页面的url var access_token = document.getElementById(...
  • ![图片说明](https://img-ask.csdn.net/upload/201804/04/1522824015_167456.png) 为什么我TOKEN认证失败?这里的URL跟我的网站首页没有关系吧?后台代码级目录结构如下 ![图片说明]...
  • 一.用户授权和判断是否授权  1. 用户授权   需使用button按钮,必须填写属open-type 和调起授权窗口的事件 bindgetuserinfo, canIUse 判断小程序的api,回调,参数,组件等是否在当前版本可用,定义在当前页面...
  • 最近这两天在尝试开发微信宣传页,之前做过的微信宣传页是使用在线平台开发的。 就是那种在线像PPT一样制作一张一张的过渡动画,然后自动轮播。但是这次我想自己从底层进行开发。 结果移动端web经验不足的我遇到了...
  • 小白进行微信公众号开发有半年,遇到了许多坑,android和IOS的兼容性的时代性问题,还要微信浏览器的不友善;慢慢跟后续会加,有遇到的同行可以补充;以下; 1.点击事件失效  点击事件失效是最快遇到问题,这个...
  • 今天整理一下微信开发中遇到的图片和附件的上传问题。 开发环境参考:微信开发(一)--分享接口 点击打开链接 由于是基于weixin-java-tools 封装的java sdk,所以在微信底层处理上我们可以直接调用WxMpService. ...
  • 微信公众号开发对接,开发文档也有蛮多坑,所以一路的血泪教训,这次先针对微信支付整理一下支付的踩坑全过程,开发时间紧现在整理出来,既是对此段时间的学习总结,也希望对遇到同样问题的童鞋可以有参考价值。...
  • 微信与支付宝开发问题总结 1.先说微信 首先需要明确的问题是:微信公众号,微信开放平台...切记:微信开发,坑真的是很深很深,本人也是苦苦挣扎,经过了一段时间的摸索终于脱坑了。所以记下这段探索之路,给大家参考
  • 最近,公司要开发微信公众号,从零学习,看书看博客;一天时间,动手开发,申请微信公众平台测试账号,验证url,token,一切都很顺利;但是,在测试自动回复时,一直报错,显示“该公众号暂时无法提供服务,请稍后再...
  • 微信小程序开发中遇到问题总结(1) 分隔线高度使用rpx问题 在相邻的两条信息直接都会有一个分割线,将线的高度都设置成1rpx,在第一条和第二条之前的分隔线没有显示,但是其他的都展示了,分割线的属性是一样的,...
  • 微信内置浏览器对alert的特殊处理alert在微信浏览器会提前执行,虽然代码在后面。 例子: my_alert("my_alert")//弹出自定义对话框 alert("alert")//弹出原生对话框 其中my_alert是我自己定义的一个弹出对话框...
  • 统一下单支付: prepay_id 两小时过期 统一下单支付的订单可以用同一个订单号下单,相当于重新支付该订单,但是偶尔会出现 该笔订单没有付款,却又提示商户号重复。 解决未支付,商户号重复的办法,先查询订单,确认...
1 2 3 4 5 ... 20
收藏数 67,449
精华内容 26,979
关键字:

微信开发中遇到的问题