1. 图片名注意大小写. 不然本地预览是可以看到的.上传后用手机就看不到了.

2. bindtap等事件传参

wxml

<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>

JS

Page({
tapName: function(event) {
console.log(event)
}
}) event 打印结果 {
"type":"tap",
"timeStamp":,
/////////////////////////////////
"target": {
"id": "tapTest",
"dataset": {
"hi":"WeChat"
}
},
"currentTarget": {
"id": "tapTest",
"dataset": {
"hi":"WeChat"
}
},
///////////////////////////////
"detail": {
"x":,
"y":
},
"touches":[{
"identifier":,
"pageX":,
"pageY":,
"clientX":,
"clientY":
}],
"changedTouches":[{
"identifier":,
"pageX":,
"pageY":,
"clientX":,
"clientY":
}]
} 注意两点:
、data-名称 不能有大写字母,如果需要,可以通过 - (中划线)来连接单词,编译的时候小程序会将第二个单词首字母自动大写。图中代码是为了自己标志,所以第二个单词的首字母大写了,其实可以不用。data-* 属性中不可以存放对象。 、注意打印结果中target和currentTarget的区别。 target 触发事件的源组件。
currentTarget 事件绑定的当前组件。 如果你在父容器上绑定了事件并传参,当你点击父容器时,事件绑定的组件和触发事件的源组件是同一个元素,所以currentTarget 、target 都可以拿到参数,但是当你点击子元素时,target 就不是事件绑定的组件了,所以拿不到参数。
由于事件冒泡的机制,父容器上绑定的事件依然可以触发,所以currentTarget 依然可以拿到参数。

3. 微信小程序 之 tabBar 和 navigator 一起使用 的问题

当注册了tabBar的时候,使用navigator时会发现不能跳转,这个时候需要在navigator上加上open-type='switchTab' 属性;  当未注册tabBar的时候,navigator可正常使用,默认即可。

<navigator url='../about/about' open-type='switchTab' >
<image data-url='about' class='album' src="/images/about.png" mode="cover"></image>
</navigator>

//事件处理函数

bindViewTap: function(event)
    var url = '../' + event.currentTarget.dataset.url + '/'+event.currentTarget.dataset.url

    if (event.currentTarget.dataset.url=="about")
wx.switchTab({
url: url,
})
else
wx.navigateTo({
url: url
})

4. html/css 转成wxml和wxss注意点:

wxss里不能用url(本地图片)

你可以用 http://imgbase64.duoshitong.com/ 转成base64,

background-image: url("data:image/png;base64,iVBORw0KGgo=...");

<h3> 这样的标签和wxml不兼容,可以改成<b>, 在wxss修改样式

<li> 在循环里不兼容, 可以改成<view class="li">, 在wxss修改样式

5. button 去掉border: 使用after属性

/*使用 button::after{ border: none; } 来去除边框*/
.free-btn-bordernone{
background: none !important;
color: # !important;
}
.free-btn-bordernone::after{
border: none;
}

6. 小程序AES解密C#

        public string AES_decrypt(string encryptedDataStr, string key, string iv)
{
RijndaelManaged rijalg = new RijndaelManaged();
//-----------------
//设置 cipher 格式 AES-128-CBC rijalg.KeySize = ; rijalg.Padding = PaddingMode.PKCS7;
rijalg.Mode = CipherMode.CBC; rijalg.Key = Convert.FromBase64String(key);
rijalg.IV = Convert.FromBase64String(iv); byte[] encryptedData = Convert.FromBase64String(encryptedDataStr);
//解密
ICryptoTransform decryptor = rijalg.CreateDecryptor(rijalg.Key, rijalg.IV); string result=""; using (MemoryStream msDecrypt = new MemoryStream(encryptedData))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
result = srDecrypt.ReadToEnd();
}
}
}
return result;
}

7. 微信小程序开发之webview组件内网页实现微信原生支付

https://zhuanlan.zhihu.com/p/32732356

https://blog.csdn.net/blankshsh/article/details/79161751

8. button 按钮样式

<view class="btnbox" hover-class="btnbox_hover">
<button class="btn" bindtap="btnClick"></button>
<view class="text">确定</view>
</view>
.btnbox {
width: 250rpx;
height: 80rpx;
border-radius: 8rpx;
position: relative;
overflow: hidden;
background: #ffb80d;
color: #fff;
font-size: 36rpx;
display: flex;
justify-content: center;
align-items: center;
} .btnbox .btn {
position: absolute;
width: 100%;
height: 100%;
margin:;
padding:;
top:;
right:;
bottom:;
left:;
border:;
opacity:;
background: transparent;
z-index:;
} .btnbox .text {
display: block;
line-height: 1.5;
text-align: center;
} .btnbox_hover {
background: #e6a301
}

9. 小程序GPS定位:

https://blog.csdn.net/blankshsh/article/details/78193174

10. 小程序图片上传

https://blog.csdn.net/blankshsh/article/details/79161976

11.  swiper 图片不显示: 是因为你放在.container里面. 不能用flex布局

/**app.wxss**/
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 0rpx 0;
box-sizing: border-box;
background-color: #f4f2ed;
}

12.  修改小程序背景,TabBar颜色,

app.wxss

page {
line-height: 1.6;
font-family: -apple-system-font, "Helvetica Neue", sans-serif,微软雅黑;
font-size:14px;
background-color: #fdd35a;
background:-webkit-gradient(linear, 0% 0%, 0% 100%,from(rgba(253,211,90,1)), to(rgb(248, 243, 243)));
background: url('http://www.xxx.cn/images/oscar.png') no-repeat;
background-size: 100% 100%;
}

app.json

"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fdd35a",
"navigationBarTitleText": "格之律",
"navigationBarTextStyle": "black"
},
"tabBar": {
"color": "#d7ced5",
"selectedColor": "#fdd35a",
"borderStyle": "white",
"backgroundColor": "#150d02",
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "images/home.png",
"selectedIconPath": "images/home_active.png"
},
{
"pagePath": "pages/personal/personal",
"text": "我的",
"iconPath": "images/my.png",
"selectedIconPath": "images/my_active.png"
}
]
}

动态控制某个view显示或隐藏

<div class="js-tabber-container goods-detail">
<div class="js-tabber tabber clearfix ">
<button bindtap="onChangeShowState" data-type="goods" class="{{showView?'active':''}}">
商品详情 </button>
<button bindtap="onChangeShowState" data-type="reviews" class="{{showView?'':'active'}}">
评论 </button>
</div> <div class="js-tabber-content">
<div class="js-part {{showView?'':'hide'}}" data-type="goods">
<template is="wxParse" data="{{wxParseData:article.nodes}}" />
</div>
<div class="js-part {{showView?'hide':''}}" data-type="reviews">
<block wx:for="{{product.reviews}}" wx:key="{{id}}">
<text>
{{item.title}}</text>
<text>
{{item.reviewText}}
</text> </block>
</div>
</div>
</div>
  onChangeShowState: function () {
var that = this;
that.setData({
showView: (!that.data.showView)
})
},

公众号菜单跳转到小程序, 需要先到公众号后台绑定小程序之后, 如果是开发者模式,则这样写

{
"type": "miniprogram",
"name": "装修有范",
"url": "http:\/\/www.163.com\/wx\/test",
"appid": "wx405b7147dd6291df",
"pagepath": "pages/home/home?forumCode=5eo9bd97f9"
"sub_button": []
}

如果没有绑定,则会提示这个错误: {"errcode":85005,"errmsg":"appid not bind weapp hint: [ifgeuA08321976]"}

invokeWebviewMethod 数据传输长度为 2423164 已经超过最大长度 1048576

json返回的数据太多了

小程序webview要打开公众号图文信息时,仅支持打开该小程序关联公众号的图文信息

net core web api 的后台的post方法取不到前台小程序传来的参数

--- 要改后台,采用[FromBody], 不然你只能用url上拼接QueryString的方法

        [HttpPost]
public dynamic Post([FromBody]dynamic obj)
{
string email = obj.email;
string firstName = obj.firstName;
string lastName = obj.lastName;
}

前台小程序代码

 wx.request({
url: app.globalData.serverAddress + '/api/customers',
method: 'post',
header: { "Content-Type": "application/json" },
data: { email: email, phone: mobile, openId: app.globalData.openid },
success: function(res) {}
})

小程序前台对后端api接口返回的json数据进行加工,比如datetime格式化,增加字段,数组排序

// 变换Json格式显示
for (var i = ; i < shipments[].shipmentLogistics.length; i++)
shipments[].shipmentLogistics[i].processTime = util.formatISODateTime(shipments[].shipmentLogistics[i].processTime); //2018-11-28T14:36:57.8837891
function formatISODateTime(time){
if (time != null) {
return time.replace("T"," ").substring(,)
}
return "";
}
  //动态添加字段
getOrderStatus: function(orderList) {
var ss = []
for (var i = ; i < orderList.length; i++) {
if (orderList[i].paymentStatusId == '')
orderList[i].orderStatus = '未支付'
if (orderList[i].paymentStatusId == '')
orderList[i].orderStatus = '已支付'
}
return orderList }
     //按id倒序
shipmentLogistics.sort(function (a, b) {
return b.id - a.id
})

微信小程序FAQ的更多相关文章

  1. 官方问答--微信小程序常见FAQ (17.8.21-17.8.27)

    给提问的开发者的建议:提问之前先查询 文档.通过社区右上角搜索搜索已经存在的问题. 写一个简明扼要的标题,并且正文描述清楚你的问题. 提交 BUG:需要带上基础库版本号,设备信息(iOS, Andro ...

  2. 微信小程序开发手册

    目录: 数据绑定 条件渲染 列表渲染 API FAQ: <block wx:for> 和 <view wx:for>的区别 wx:if 什么情况下判断为假 坑列表: 微信版本6 ...

  3. 69个微信小程序常见问题

    本文转自 遇到小程序方面的问题,该去哪里提问呢? 若是能得到微信官方的解答,想必是最叫人安心的.而微信也确实提供了这么一个地方. 在微信公众平台的开发者社区,就置顶了一个「小程序常见问题 FAQ」帖. ...

  4. 微信小程序知识总结及案例集锦

    微信小程序知识总结及案例集锦 微信小程序的发展会和微信公众号一样,在某个时间点爆发 学习路径 微信小程序最好的教程肯定是官方的文档啦,点击这里直达 微信官方文档 认真跟着文档看一遍,相信有vue前端经 ...

  5. php对接微信小程序支付

    前言:这里我就假装你已经注册了微信小程序,并且基本的配置都已经好了.注: 个人注册小程序不支持微信支付,所以我还是假装你是企业或者个体工商户的微信小程序,其他的商户号注册,二者绑定,授权,支付开通,就 ...

  6. 微信小程序个人/企业开放服务类目一览表

    微信小程序个人/企业开放服务类目一览表   微信小程序个人开放服务类目表 服务类目 类目分类一 类目分类二 引导描述 出行与交通 代驾 / / 生活服务 家政.丽人.摄影/扩印.婚庆服务.环保回收/废 ...

  7. [微信小程序] 认识微信小程序及开发环境搭建

    微信公众平台首页 https://mp.weixin.qq.com 微信公众平台测试帐号系统 https://open.weixin.qq.com/connect/qrconnect?appid=wx ...

  8. 微信小程序学习指南

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  9. 微信小程序后端开发流程

    微信小程序后端开发流程根据官网总结为两个步骤 1.前端调用 wx.login 返回了code,然后调用wx.getUserInfo获取到用户的昵称 头像 2.服务端根据code去微信获取openid, ...

随机推荐

  1. NET Core 指令启动

    ASP.NET Core 是新一代的 ASP.NET,早期称为 ASP.NET vNext,并且在推出初期命名为ASP.NET 5,但随着 .NET Core 的成熟,以及 ASP.NET 5的命名会 ...

  2. VC_窗口exe_printf信息

    1. #include <io.h> #include <fcntl.h> #include <stdio.h> 2. void InitConsoleWindow ...

  3. Uncaught TypeError: (intermediate value)(...) is not a function 上一个方法结束没有加分号; 代码解析报错

    Uncaught TypeError: (intermediate value)(...) is not a function 别忽略了,  第一个方法后面的结束 分号; 不起眼的,引来麻烦, 哎,规 ...

  4. Spring Bean的生命周期例子

    以下例子源于:W3Cschool,在此作记录 HelloWorld.java package com.how2java.w3cschool.beanlife; public class HelloWo ...

  5. php 建站 多域名配置 自定义重定向

    1. 申请一个域名 , 当多个域名使用. 比如 申请一个顶级域名为 .com 后缀的一级域名 :mine.com, 一般允许绑定四五个二级域名,比如 www.mine.com  . mine.mine ...

  6. Angular 学习笔记 Material

    以后都不会写 0 到 1 的学习记入了,因为官网已经写得很好了. 这里只写一些遇到的坑或则概念和需要注意的事情. Material Table 1. ng-content 无法传递 CdkColumn ...

  7. 响应式布局与bootstrap框架

    原文 网页布局方式 1.固定宽度布局:为网页设置一个固定的宽度,通常以px做为长度单位,常见于PC端网页. 2.流式布局:为网页设置一个相对的宽度,通常以百分比做为长度单位. 3.栅格化布局:将网页宽 ...

  8. Wireshark 文件分割和合并

    # 捕获文件的基本信息. capinfos <filename> 从结果中可以看到 http.pcapng 捕获文件的基本信息,包括文件类型.封装.包大小限制.包数.文件大小及时间等. # ...

  9. every day a practice —— morning(4)

    If there’s one thing New Yorkers love more than discovering a new secret remedy, it’s telling other ...

  10. 【WPF】Silverlight中的Action与Trigger

    最近做的Silverlight项目上用到了大量的拖拽,自动跟随等功能,由于赶时间,加上对Silverlight半生不熟,用的是最简单也是最不好维护的方法.项目忙完了闲下来,想重构一下代码,想起了Tri ...