美文网首页
微信小程序遇到的问题

微信小程序遇到的问题

作者: babyuu | 来源:发表于2018-05-05 15:30 被阅读1173次

1.登录的流程:

(1)wx.login获取临时登录凭证code.

(2)wx.getSetting(OBJECT),wx.getUserInfo()获取用户的授权信息,并回传到开发者服务器code,encryptedData ,iv。

(3)拒绝授权之后调用wx.openSetting,获取用户信息,向后台传信息。

wx.getSetting({ success: (res) => {

if (res.authSetting['scope.record'] || res.authSetting['scope.userInfo']) {//微信授权authSetting结果

// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框

                  wx.getUserInfo({

                    success: res => {

                      /**

                      * 向后台发送 res 发送给后台解码出 unionId

                      */

                      let encryptedData = res.encryptedData;

                      let iv = res.iv;

                        }

                })

}})

2.ES6的promise用法

(1).微信小程序引入es6promise.js;

(2).网络层promise封装

export default class NetUtil{//static静态方法

    static  post(url,data){

        return NetUtil.requestJson(url,data,"post");

    }

    static get(url,data){

        return NetUtil.requestJson(url,data,"get");

    }

    static  requestJson(url,data,method){

        data=data||{};

        return new Promise(function(resolve,reject){

            wx.request({

                "method":method,

                 "url":url,

                  "data":data,

                   "header":{

                         'Content-Type': 'application/json'

                    },

                    success:function(res){

                        resolve(res);

                    },

                    fail:function(err){

                        reject(err);

                    }

            })

        }

    }

}

Promise.all()方法用于将多个promise实例,包装成一个新的Promise实例。

const p=Promise.all([p1,p2,p3]);

Promise.all方法接受一个数组作为参数,p1,p2,p3都是Promise实例,如果不是,就会先调用下面讲到的Promise.resolve方法,将参数转为Promise实例,再进一步处理。(Promise.all方法的参数可以不是数组,但必须具有Iterator 接口,且返回的每个成员都是Promise实例。)

p的状态由p1,p2,p3决定,分成两种

(3).require 用来加载代码,而 exports 和 module.exports 则用来导出代码。但很多新手可能会迷惑于 exports 和 module.exports 的区别。

module.exports初始值为一个空对象{};

exports是指向module.exports的引用。

require()返回的是module.exports而不是exports。

module.exports:模块化。

(4).let app=getApp();微信提供了全局的getApp()函数,可以获取到小程序实例或小程序注册实例中的方法。

(5).使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名。

3.微信小程序富文本的用法:

(1).将下载下来的插件文件夹复制到我们的项目根目录下(其中emojis文件可根据自己所需决定要或者不要,其他的文件必须要)

(2).在需要用到该插件的view(.js)引入

var WxParse= require('../../../wxParse/wxParse.js');

(3).在需要用到的wxss中引入WxParse.wxss,也可以在app.wxss中引入(没有引入WxParse.wxss:span样式显示不正确)。

@import"../../../wxParse/wxParse.wxss";

(4).进行数据绑定

var article="我是HTML代码"

/** 

WxParse.wxParse(bindName,type,data,target,imagePadding)

1.bindName绑定的数据名(必填)

2.type可以为html或md(必填)

3.data为传入的具体数据(必填)

4.target为Page对象,一般为this(必填)

5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选).

*/ 

var that = this; 

WxParse.wxParse('article', 'html', article,that, 5);

(5).在内容页(.wxml文件)中引用该模版文件,其中data中article为bindName。

导入文件 <import  src="wxParse.wxml" />

引用模版 <template is="wxParse" data="{{wxParseData:article.nodes}}"/>

4.组件模板和样式

组件模板的写法和页面模板相同。组件模板与组件数据结合后生成的节点树,将被插入到组件的引用位置上。

在组件模板中可以提供一个节点,用于承载组件引用时提供的子节点。

<!--组件模板-->

<view class="wrapper">

    <solt></solt>

</view>

<!--引用组件的页面模板-->

<view>

    <component-tag-name>

        <view>这里是插入到组件solt的内容</view>

    </component-tag-name>

</view>

注意,在模板中引用到的自定义组件及其对应的节点名需要在json文件中显示定义,否者会被当作一个无意义的节点。

组件wxml的solt

在组件的wxml中可以包含slot节点,用于承载组件使用者提供的wxml解构。

默认情况下,一个组件的wxml中只能有一个solt。要启动solt必须在json文件中开启{  "component": true}。

5.join的用法join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

join()方法用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔。

var arry=[aa,bb,cc];

document.write(arry.join());输出aa,bb,cc

6.concat用于连接两个或多个数组。

7.ES6中Set的用法

//Set结构的实例有四个遍历方法,可以用于遍历成员。

keys():返回键名的遍历器

values():返回键值的遍历器

entries():返回键值对的遍历器

forEach():使用回调函数遍历每个成员.

由于Set结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致.

let set =new Set(['red','green','blue']);

for (let item of set.keys()){

console.log("===",item);

}

// (2).forEach()

// Set结构的实例与数组一样,也拥有forEach方法,用于对每个成员执行某种操作,没有返回值.

set=new Set([1,4,9]);

set.forEach((value,key)=>{

console.log(key);

}) 

8.Map结构的实例有以下属性和操作方法。

(1)size属性返回Map结构的成员总数。

const mapo=new Map();

mapo.set("aa",true);

mapo.set("bb",false);

mapo.size;//2

(2)set(key,value)

//set方法设置键名key对应的键值为value,然后返回整个Map结构.如果key已经有值,则键值会被更新,否则就新成该键.

const mp=new Map();

mp.set('edition',6)//键是字符串

mp.set(26,'standard')//键是数值

mp.set(undefined,'nah')//键是undefined

(3)get(key)

//get方法读取key对应的键值,如果找不到key,返回undefined

const m=new Map();

const hello=function(){

console.log('hello')

}

m.set(hello,'Hello ES6')//键是函数

m.get(hello)

(4)has(key)

//has方法返回一个布尔值,表示某个键是否在当前Map对象之中

const m=new Map();

m.set('edition',6);

m.set(262,'standard');

m.set(undefined,'nah');

m.has('edition')//true

m.has('years')//false

m.has(262)//true

m.has(undefined)//true

(5)delete(key)

//delete方法删除某个键,返回true。如果删除失败,返回false。

const m1=new Map();

m1.set(undefined,'nah');

m1.has(undefined);

console.log("===",m1.has(undefined));

console.log("delete",m1.delete(undefined));

(6)clear()方法清除所有成员,没有返回值。

相关文章

  • 开发总结

    微信小程序遇到的问题: ===========================================

  • 一篇文章为你深度解析HTTPS 协议

    一、微信小程序接入的困境 农历新年将至,微信小程序也如期发布,开发者在接入微信小程序过程中,会遇到以下问题: 小程...

  • 微信小程序遇到的问题

    1.登录的流程: (1)wx.login获取临时登录凭证code. (2)wx.getSetting(OBJECT...

  • 使用antmove微信小程序转换支付宝小程序

    本次有需求 直接一直微信小程序到支付宝小程序。记录一下使用antmove转换遇到的问题 支付宝小程序与微信小程序的...

  • 微信小程序笔记心得

    微信小程序问题汇总及详解《一》form表单 微信小程序问题汇总及详解《二》tab切换 微信小程序问题汇总及详解《三...

  • 小程序replace()正则表达式

    遇到的问题 :在微信小程序里面用到replace(//g,'')报错image.png 解决方法: 原因是微信小程...

  • 微信小程序实战

    微信小程序实战 有问题可以扫码加我微信,有偿解决问题。承接小程序开发。微信小程序开发交流qq群 870222928...

  • 小程序反编译方法

    看了很多反编译小程序、找回微信小程序源码很多教程,各种问题导致都没法正常使用。微信版本升级后,会遇到各种报错, 以...

  • 微信小程序开发之-Https免费证书配置

    微信小程序开发之-Https免费证书配置 有问题可以扫码加我微信,有偿解决问题。承接小程序开发。微信小程序开发交流...

  • laravel 小程序登录 session问题

    问题描述 当微信小程序开发中用laravel做后台的时候一定会遇到登录session的问题 因为小程序没有cook...

网友评论

      本文标题:微信小程序遇到的问题

      本文链接:https://www.haomeiwen.com/subject/gtyolftx.html