- 第三方平台怎么获取sourceMap?
使用ci的getDevSourceMap方法获取souceMap,文档说是获取最新上传版本的souceMap文件,但是真实情况是获取开发小程序的线上版本sourceMap。这个是正确的吗?如果是这样的,那怎么获取最新版本模板的souceMap,作为第三方服务商,不是获取模板的souceMap的话,意义就没有了吧。 退一步说,获取的是开发小程序线上版本的souceMap,那怎么把开发小程序升级到最新版本呢?绑定了第三方授权开发小程序,好像升级不了
05-27 - 勾选"开启Skyline渲染调试"后,微信开发者工具中input组件无法输入中文
勾选"开启Skyline渲染调试"后,在微信开发者工具中,无论是webview页面还是skyline页面,input组件无法输入中文。 若不勾选"开启Skyline渲染调试",则可以输入中文。
05-26 - 微信中的城市服务如何申请?
如题,求助各位路过的老师或官方解答下。 领导给了一句话。让申请 微信的城市服务,请问下此城市服务是通过什么账号去申请?申请过程大概流程如何?有了解的同学吗?
2019-12-10 - 关于「小程序内用户帐号登录规范调整和优化建议」,我可以这样做吗?
本周来上班刚登上小程序后台就看到了微信官方发布的「小程序内用户帐号登录规范调整和优化建议」(链接:https://developers.weixin.qq.com/community/operate/doc/000640bb8441b82900e89f48351401),很多小程序开发/维护者表示???!!!~~~ 现实: 我现在正在维护的小程序(商品售卖类)属于第一种情形,目前小程序内关于授权登录的做法是:对于新用户/已删除授权的老用户,进入小程序后,将首先跳转至登录授权页面,如果用户未允许授权,那么将无法继续使用小程序。该做法确实:1.比较霸道;2.对少数想先浏览商品再决定是否进行购买的用户来说,有点使他们无法接受,如果直接离开,将导致我们丢失一部分用户。 痛点: 目前这种情况下,如果按照「规范调整和优化建议」里的“建议”去做修改的话,成本将会不小,因为前后端经过几番改造后,目前几乎所有的接口都需要用户验证,所以如果修改成先让用户体验再让用户进行登录的话,一来将使得我们过去几个月所做的努力白费,二来也将大规模调整我们的业务逻辑,成本太高,而且不稳定性也将增加,这对我们开发者来讲特别不划算。 个人期望折中的方法: 这两天思考了一下,我们再进行接口升级改造时,旧版本的用于获取首页商品列表不需要验证的接口并未废弃仍可使用,鉴于此,如果我继续保持之前的未授权用户进入小程序即跳转至授权登录页面要求授权,但在该页面增加「暂不登录」的选项,此时: 1. 用户若不介意登录授权,那可以直接点击「授权登录」进行授权,授权后将前往首页,此时首页将采用新版的需要验证的接口 2.对于介意的用户来说,点击「暂不登录」,将前往首页,此时使用旧接口进行体验以及商品浏览,当该用户有意向购买时,比如点击了购物车的购买按钮,再行授权登录 期望回答: 这种比较折中的方法,将能在保留我们目前业务逻辑的情况下,使得开发者尽量少的对代码进行改动,希望官方同学能够回答下:对于这种修改,仍然会受到“代码审核环节进行规则提示和修改要求反馈”的惩罚🐎?真心求问啊! [图片] 2019/08/08 更新: 我们公司小程序的登录授权流程已经修改,其实就是微信提供的那套小程序登录,在这里统一说一下: 小程序登录/注册情形:我们的登录于注册不依赖于用户的个人信息以及UnionId,新用户在我们这里注册后会根据用户的OpenId生成一个userId然后根据这个userId生成对应的session进行后续业务接口的验证,所以如果你们依赖于UnionId的话,请慎重考虑~~~ 修改之前:新用户进入小程序后会立即跳转至「登录授权」页面,用户允许授权后会调用登录接口(v1.0.0)完成注册,生成用户userId以及cookie返回,前台将cookie进行保存以供后续业务接口使用 修改之后:将用户注册于授权保存用户信息分离开来,用户进入小程序后会首先调用wx.login()获取code,将code传给后台以获取OpenId,后台拿到OpenId后直接进行查询:未查询到则为新用户,注册生成新的UserId,查询到则为老用户,得到之前已经生成的UserId,随后将cookie返回,前台保存;用户浏览后进行购买操作或者进入「我的」页面时,才会提示授权,允许授权后才会保存用户信息以及获取其UnionId
2019-08-08 - 利用云函数绕过域名校验和HTTPS配置,实现内网加端口访问
闲来无事,无意中发现云函数中的request网络请求可以不用配置校验域名和https,也就是说可以通过云函数封装一个请求通用函数来处理没有域名和https的网络请求(甚至包括内网穿透,可以用非80端口进行实验)。 适用场景: A、没有域名或使用局域网(直接使用IP访问); B、使用花生壳动态域名解析(内网穿透); C、有域名但不想申请配置HTTPS(懒人); D、连自己的服务器都没有,接口直接使用开源或者第三方接口且不能添加域名校验的情况(空壳); E、不愿意直接在小程序中直接暴露自己逻辑API实际请求地址的(安全); ······ 具体步骤如下: 1、给项目添加云函数支持(https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html) 2、新建名为“proxy”的云函数,配置支持request-promise [代码]// package.json[代码][代码]{[代码][代码] [代码][代码]"name"[代码][代码]: [代码][代码]"proxy"[代码][代码],[代码][代码] [代码][代码]"version"[代码][代码]: [代码][代码]"1.0.0"[代码][代码],[代码][代码] [代码][代码]"description"[代码][代码]: [代码][代码]""[代码][代码],[代码][代码] [代码][代码]"main"[代码][代码]: [代码][代码]"index.js"[代码][代码],[代码][代码] [代码][代码]"scripts"[代码][代码]: {[代码][代码] [代码][代码]"test"[代码][代码]: [代码][代码]"echo \"Error: no test specified\" && exit 1"[代码][代码] [代码][代码]},[代码][代码] [代码][代码]"author"[代码][代码]: [代码][代码]""[代码][代码],[代码][代码] [代码][代码]"license"[代码][代码]: [代码][代码]"ISC"[代码][代码],[代码][代码] [代码][代码]"dependencies"[代码][代码]: {[代码][代码] [代码][代码]"wx-server-sdk"[代码][代码]: [代码][代码]"latest"[代码][代码],[代码][代码] [代码][代码]"request"[代码][代码]: [代码][代码]"latest"[代码][代码],[代码][代码] [代码][代码]"request-promise"[代码][代码]: [代码][代码]"latest"[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]// 云函数入口文件index.js[代码] [代码]const cloud = require([代码][代码]'wx-server-sdk'[代码][代码])[代码][代码]const rq = require([代码][代码]'request-promise'[代码][代码])[代码][代码]cloud.init()[代码][代码]// 云函数入口函数[代码][代码]// event为小程序调用的时候传递参数,包含请求参数uri、headers、body[代码][代码]exports.main = async (event, context) => {[代码][代码] [代码][代码]return[代码] [代码]await rq({[代码][代码] [代码][代码]method: [代码][代码]'POST'[代码][代码],[代码][代码] [代码][代码]uri: event.uri,[代码][代码] [代码][代码]headers: event.headers ? event.headers : {},[代码][代码] [代码][代码]body: event.body[代码][代码] [代码][代码]}).then(body => {[代码][代码] [代码][代码]return[代码] [代码]body[代码][代码] [代码][代码]}).[代码][代码]catch[代码][代码](err => {[代码][代码] [代码][代码]return[代码] [代码]err[代码][代码] [代码][代码]})[代码][代码]}[代码]3、在小程序中调用云函数请求数据请求 [代码]onLoad: [代码][代码]function[代码][代码](){[代码][代码] [代码][代码]// 初始化[代码][代码] [代码][代码]wx.cloud.init()[代码][代码]},[代码][代码]onGetItemList: [代码][代码]function[代码][代码](){[代码][代码] [代码][代码]wx.cloud.callFunction({[代码][代码] [代码][代码]name: [代码][代码]'proxy'[代码][代码],[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]// http域名 https域名 第三方域名 非验证域名 IP[:prot] 内网IP或花生壳域名[代码][代码] [代码][代码]uri: [代码][代码]'http://192.168.1.100:8081'[代码][代码],[代码][代码] [代码][代码]headers: {[代码][代码] [代码][代码]'Content-Type'[代码][代码]: [代码][代码]'application/json'[代码][代码] [代码][代码]},[代码][代码] [代码][代码]body: {[代码][代码] [代码][代码]uid: 1[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}).then(res => {[代码][代码] [代码][代码]console.log(res)[代码][代码] [代码][代码]const data = res.result[代码][代码] [代码][代码]console.log(data)[代码][代码] [代码][代码]// do something[代码][代码] [代码][代码]})[代码][代码]}[代码]然后你会发现你已经无所不能了。 个人见解,如有不妥之处,望各位大神指正!~
2018-12-03 - 苹果无法播放m3u8格式视频,安卓机下可以
视频流测试的地址是:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 在苹果手机中,video组件无法播放视频,在安卓手机上可以
2018-11-21