20180511微信小程序正式关闭原先getUserInfo的逻辑 不再允许自动弹出授权框. 方法一: index.wxml(准备一个用于给用户授权的页面,我这里直接用了一个全屏按钮) <view class='warp' hidden='{{eye}}'> <button open-type="getUserInfo" hover-class='none' bindgetuserinfo="getUserInfoFun">.</but…
微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </view> <button bindtap="RequestData" value="Button">Button</button> 主要是一个按钮,点击后将请求的数据写入到textarea中 js文件: Page({ data:{ textd…
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hello World的微信小程序,并讲解了这个自动生成的微信小程序的视图开发原理. 这个系列的下一步,会继续介绍这个微信小程序的控制器index.js的实现.在上一篇微信小程序视图源代码的讲解里,我们通过逐行讲解代码的方式,介绍了微信小程序视图的基本开发思路.但是讲控制器index.js, 仅仅采取静态…
最近公司做了一些有关微信小程序的项目,涉及到授权获取用户基本信息,但是在拒绝授权之后就不会再出现授权窗口: 看网上也有很多人遇到了同样的问题,所以记录下来我的处理方法,供大家和自己学习和记录: 当调用小程序 wx.getUserInfo(OBJECT) 获取用户基本信息时,需要用户进行授权操作,如果用户点击了拒绝,则再次调用该方法就不会出现对应的授权窗口,很是让人困惑: 找了许久,最后让我发现了它:------> wx.openSetting(OBJECT),下面让我们认识一下: wx.open…
微信小程序授权是非常简单和常用的功能,但为了方便,还是在此记录一下要点: 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@getuserinfo的事件,把获取授权接口写到该事件里面去 <button class="sys_btn" open-type="getUserInfo" lang="zh_CN" @getuserinfo="appLoginWx&q…
微信小程序授权页面,进入小程序如果没授权跳转到授权页面,授权后跳转到首页,如果用户点拒绝下次进入小程序还是能跳转到授权页面,授权页面如下 app.js  中的 onLaunch或onShow中加如下代码,如果没授权跳转到授权页面 // 获取用户信息 wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.getUserI…
先上图        实现流程: 1.授权登陆按钮和正文信息放到了同一个页面,未授权的时候显示登陆按钮,已授权的时候隐藏登陆按钮,显示正文信息,当然也可以授权和正文分开成两个页面,在授权页面的onload里判断是否已授权,若已授权就直接跳转正文的页面.这里只说授权按钮和正文在同一页面的情况. 2.在onload里先判断是否已授权,如果已授权,就隐藏授权登陆按钮,显示正文信息,如果没有授权,显示授权登陆按钮. 3.前端使用button的open-type="getUserInfo"来操作…
这个星期最开始 ,老大扔了2个任务过来,这个是其中之一.下面直接说步骤: 1.  查阅微信开发文档  https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html 我将两个重要的地方列出来 a  登录流程时序图,及说明 登录流程时序 说明: 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器. 调用 auth.code2Session…
登录流程时序图: 1.调用uni.getProvider()获取服务供应商,参数service确定是选择对应的什么操作,此处选择授权登录oauth 代码如下: 2.调用登录接口uni.login(),参数provider就是登录服务提供商,通过 uni.getProvider 获取,如果不设置则弹出登录列表选择界面,会返回一个随机code码,小程序专有,用户登录凭证.开发者需要在开发者服务器后台,使用 code 换取 openid 和 session_key 等信息. 3.虽然已经完成了登录,但…
问题: 在首次进入小程序时,我们常常会收到一些获取权限的申请,比如「获取地理位置权限」.需要微信登录时请求「获得你的公开信息(昵称.头像等)」.对于这些权限申请,开发者当然希望获得所有权限,而用户拒绝授权的情况不免存在.那么作为开发人员在考虑「用户拒绝授权」这类异常情况出现时,应该提前做好未获得授权时的兼容处理,以及用户希望授权时的再次提醒. 查看官方文档: 授权 部分接口需要经过用户授权同意才能调用.我们把这些接口按使用范围分成多个scope,用户选择对 scope来进行授权,当授权给一个sc…
wxParse是一个微信小程序富文本解析组件.现在小程序里面自带了一个<rich-text>组件也能解析富文本,但是表现不尽人意.所以我还是采用的wxParse来解析富文本的. wxParse git地址:https://github.com/icindy/wxParse.可以先稍作了解.下面具体讲一下我实现的步骤: 1.下载 wxParse,解压,将 wxParse 放入小程序中. 如下图: 2.在 你需要引用这个插件的 wxml 文件中引用  wxParse.wxml //路径根据你实际情…
Page({ onLoad: function() { var that = this; // 查看是否授权 wx.getSetting({ success: function(res) { if (res.authSetting['scope.userInfo']) { wx.getUserInfo({ success: function(res) { // 用户已经授权过,不需要显示授权页面 // 根据自己的需求有其他操作再补充 // 用户授权成功后,调用微信的 wx.login 接口,从而…
在index.wxml中: <!--index.wxml--> <view wx:if="{{isHide}}"> <view wx:if="{{canIUse}}" > <view class='header'> <image src='/images/wx_logo.png'></image> </view> <view class='content'> <vi…
一. wx.authorize(Object object) 提前向用户发起授权请求.调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口.如果用户之前已经同意授权,则不会出现弹窗,直接返回成功. 用户可以授权的 scope 包括: scope 对应接口 描述 scope.userInfo wx.getUserInfo 用户信息 scope.userLocation wx.getLocation, wx.chooseLocation, wx.open…
小程序的API接口文档写的很清晰,现在理一遍思路. 前端通过wx.login()获取code ,把code发给后台,后台返回openid,再获取用户的授权信息(这里先判断是否授权,授权过的就直接进入小程序,没授权过的,跳转到授权页进行). 在app.js 页 onLaunch: function () { var _this = this; // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, un…
小程序由于内置于微信,这使得它有了得天独厚的宣传和使用优势,本着学习的心态,我在官网上看了一遍开发文档,大致得出小程序框架的设计模式与使用注意事项(重点来了,其实开发文档某些方面叙述的并不仔细,甚至存在歧义).在此与诸君分享,还望不吝赐教. 0.小程序框架结构就不多赘述有兴趣的童鞋可以移步我的博客查看这篇文章,现在要讲的是开发中经常需要用到的,节点查询的API - wx.createSelectorQuery(). 1.使用方法:(从文档上粘来的栗子,只不过我在上边添加上了注释…
如果只是单纯的展示用户信息,那么最简单的方案就是 文档中组件: <open-data type="groupName" open-gid="xxxxxx"></open-data> <open-data type="userAvatarUrl"></open-data> <open-data type="userGender" lang="zh_CN"&…
小程序前端代码 function WXlogin(){ wx.login({ success: function (code) { wx.getUserInfo({ success:function(userInfo){ //发起请求 wx.request({ url: domain+'wxopen/wxapp/login', method:"POST", data:{ code: code.code, encryptedData: userInfo.encryptedData, iv…
最近堕落了,有一阵子没有更新博客园了.一是比较忙,其次也没什么好的题材和工作中的解决方案可以分享的,想想还是把罕见的反复调起原生小程序授权框的方案拿出来说说.   市面上常见的解决方案是第一次拒绝后,后面需要授权根据小程序的API调授权接口,这样的效果极low,用户体验也极差.很多同学会选择自己定制一个授权选项页面,其实这样还是很丑很鸡肋! 下面,先看看我的效果吧!最佳解决方案,丝毫不影响用户体验!   这里我就简单说说思路吧,第一次授权即登录,拒绝授权我们是可以捕捉到事件的,这时候再一次调初始…
在我编写公司小程序的过程中,有一次在网页端添加了一张图片,结果在小程序端访问失败了,究其原因,竟然是因为该图片名称中有一个“&”符号,网页端添加后,自动转义成了“&”存储到了数据库.当然,这种格式如果是在HTML去访问图片地址,会自动在转义成“&”,但是小程序的WXML并没有这种功能,所以这就需要我们在小程序端自行操作进行转义了. 首先,明确一下会自动转义存储的常用的特殊字符有哪些: 字符 转义字符 " " & & < < >…
生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 先来看一张小程序项目结构 从上图可以看出,根目录下面有包含了app.js,app.wxss,app.json三个文件 这是小程序的全局文件,app.js是小程序逻辑 ,app.json是小程序公共设置,app.wxss是小程序公共样式表 在app.js文件中 , 定义了一些生命周期方法 , onLaunch,onShow,onHide,onError,以及任意开发者添加…
wx.authorize({ scope: 'scope.writePhotosAlbum', success() { // 授权成功 wx.saveImageToPhotosAlbum({ filePath: that.data.tempFilePath, success() { app.func.setMask({ message: '图片保存成功', bg: 'success' }, that) return } }) }, fail:function(){ // 授权失败 wx.show…
目录 全局数据共享 Mobox npm安装及其注意事项 小程序对 npm 的支持与限制 npm 依赖包的安装与使用 Mobox 1. 全局数据共享 2. 小程序中的全局数据共享方案 3. 使用mobx 组件方法共享 behaviors 1. 什么是 behaviors 2. behaviors 的工作方式 3. 创建 behavior 4. 导入并使用 behavior 5. behavior 中所有可用的节点 6. 同名字段的覆盖和组合规则 全局数据共享 Mobox 原生小程序开发中我们可以通…
  https://github.com/Tencent/weui-wxss/ 下载地址用于小程序的https://github.com/Tencent/weui   下载地址用于H5    运用示例在下载文件的文件夹 weui-wxss-master\dist\example目录下   小程序全局用法 在app.wxss用@import "weui.wxss" 另外,小程序也有许多的框架 如mpvue 等…
方法一:app.js 内设置全局变量(如屏宽,屏高的设置) 1.app.js文件,定义全局变量 /定义全局变量 globalData:{ userInfo:null, sysInfo:null, windowW:null, windowH:null } 设置全局变量 //举例获取手机信息 getSys:function() { var that = this; // 这里要非常注意,微信的scroll-view必须要设置高度才能监听滚动事件,所以,需要在页面的onLoad事件中给scroll-v…
1.依赖 a.jQuery b.angularjs 2.page.js文件 1 var Page = function (options) { 2 var myApp = angular.module('myApp', []); 3 myApp.controller('myCtrl', function ($scope) { 4 $scope.setData = function (obj) { 5 for (let key in obj) { 6 eval("$scope." + k…
一.请求发送 携带 code 到后台换取 openid var that = this; wx.login({ success(res) { console.log(res); var code = res.code wx.request({ url: 'http://localhost/index/users/code2seesion', method: "post", data: { code }, success: function (res) { console.log(res…
1.xhtml代码 长按保存: <view class="img" catchlongpress='baocun'></view> 2.Js代码 baocun: function (e) { wx.showModal({ title: '提示', content: '确定要保存这张图片吗?', success: function (res) { if (res.confirm) { console.log('用户点击确定') wx.getImageInfo({…
1.wxml <view bindtap="pay_again" data-name="{{orderList.jid}}" data-fee="{{orderList.act_fee}}" data-mobile="{{orderList.p_phone}}" data-act="{{orderList.act_name}}" class="operating f_r webkit-box…
timeOut: function(time) { var that = this; var end = new Date(time).getTime(); var Interval = setInterval(function() { var start = new Date().getTime() var x = end - start; if (x > 0) { var seconds = x / 1000; seconds = parseInt(seconds); //秒数取整 var…