分类归档

小程序

FWQ
小程序
小程序使用.getImageInfo()获取图片信息
这次给大家带来小程序使用.getImageInfo()获取信息,小程序使用.getImageInfo()获取图片信息的有哪些,下面就是实战案例,一起来看一下。 本文实例为大家分享了九宫格图片展示的具体代码,供大家参考,具体内容如下 一.知识点 二.列子 (1).加载时 <view class="zn-uploadimg"> <image src="{{tempFilePaths}}" mode="aspecFill" style="width: 100%; height: 450rpx" /> <text>图片的大小:{{imgwidth}}px*{{imgheight}}px</text> </view> 登录后复制 var app = getApp() Page({ data: { tempFilePaths: '../uploads/foods.jpg', imgwidth:0,…
2024-11-25 阅读全文 →
FWQ
小程序
微信小程序的会话保持下一次失效的解决方法
小程序的HTTP请求全部使用wx.request({})方法,但是该方法每次都会产生一个新的会话,因此在特定使用场景(安全验证、session保存、CSRF保护)等方面会遇到一些麻烦。比如csrf保护的应用中,即使上次拿到csrf,再下一次请求中又会失效。 解决方法 step 1: 获取sessionId以及csrf并保存 已获取csrf为例,简单粗暴,在应用启动时候()可以在onlaunch时候)获取第一次请求的cookie信息,保存在本地,以后每次在请求头强制加上cookie信息即可。 代码入下: //app.jsApp({     onLaunch:function(){         this.initSession();     },     initSession:function(){         var that = this;        // step one:get cookie         wx.request({             url:'https://my.domain.com/open-api/cookie',             header:{'Content-Type':'application/x-www-form-urlencoded'},             method:'GET',             success:function(res){                 for(let cookie of res.data){                    //这里我仅保存了sessionid,根据需要,也可以保存cookie的其它信息。                     if(cookie.name === 'JSESSIONID') {                         that.globalData.sessionId=cookie.value;                         wx.request({                             url:'https://my.domain.com/open-api/csrf',                             header:{'Content-Type':'application/x-www-form-urlencoded','Cookie':'JSESSIONID='+that.globalData.sessionId},                             method:'GET',                             success:function(res){                                 that.globalData.csrf=res.data;                             }…
2024-11-25 阅读全文 →
FWQ
小程序
微信公众帐号开发调试工具发布介绍
最近在做微信公众帐号开发方面的事,但用手机调试发生错误时,就什么都没回复了,靠日志记录调试效率太低下,于是乎就有了这个小工具软件的诞生。 功能简介: 在开发微信公众平台时,大多数都是用手机通过微信发送消息,然后用日志方式记录一些调试信息,因为一旦我们的WEB程序有错误或者超时,在手机微信端都看不出结来。使用这个小工具,就可以解决这个问题了,即使是超时(微信服务端只给了5秒时间),也不用怕了,当然不超时最好了。 1.请求网址 请求网址输入你在公众平台开发模式下的那个URL(如下图),这个工具不带有验签算法之类的,所以不用填写Token了,但是在WEB程序中为了安全我们是需要验签的,因此,你要加上只有你知道的参数比如debug=true之类的参数,让WEB程序不要执行验签,这样就可以跳过验签部份进行调试。请求网址最多可以保存3条,每条都会记录最后一次提交的参数,以方便在多个服务器之间进行调试。 2.FromUserName 用户在向公众帐号发送消息时,微信服务器每次都会将用于识别该用户身份的唯一ID发过来,同时也会将公众帐号的唯一标识也发过来,提交按钮上方的文本框中显示的就是模拟微信服务器提交到我们WEB服务器上的内容,你可以看到FromUserName和ToUserName. 3.ToUserName 与上面的FromUserName差不多。 4.文本/语音/图片/位置/关注/取消关注/菜单 这些选项模拟用户发送的消息类型,实际的消息内容由你自己填写 5.提交按钮 这个不用说了吧 6.5秒自动断开复选框 模拟微信服务器的计时机制,一般请求都不会超过5秒,但有时确实会出现超过5秒的请求,我自己就出现过,有些特定的操作会发生这种情况,因此这个也算是有用的 7.回应内容 这个不用解释了吧 8.清除回应内容按钮 这个也不用解释了吧 更多微信公众帐号开发调试工具发布介绍相关文章请关注PHP中文网!
2024-11-25 阅读全文 →
FWQ
小程序
小程序必须和公众号名字一样吗
小程序必须和公众号名字一样吗 不是必须的,小程序名字可以和公众号不一样。 具体规则如下: 1)小程序名称可以由中文、数字、英文、空格及部分特殊符号组成。长度在4-30个字符之间,一个中文字等于2个字符。 2)公众号、小程序在微信公众平台上的名称是唯一的,且属于同一主体下,可以重名。 3)不能跟其他主体的公众号名称重名。 PHP中文网,大量免费,欢迎学习! 以上就是小程序必须和公众号名字一样吗的详细内容,更多请关注米云其它相关文章!
2024-11-25 阅读全文 →
FWQ
小程序
PHP微信开发用Cache 解决数据缓存
本文主要介绍,解决微信开发时数据的问题,这里用 类举例说明,具有参考价值,感兴趣的小伙伴可以参考下 用php进行微信开发时,碰到access_token长久保存的问题,以前都是用里的Cache直接、get一下就完了。现在没框架可用了,只好自己动手写一个cache暂时用。 这个Cache类用来缓存一些具有时效性的数据,比如微信基础的access_token、网页Auth验证的access_token等 下面的代码使用本地文件进行数据的缓存, //测试 $cache = new Cache(); $cache->dir = "../cc/"; //$cache->setCache("zhang", "zhangsan", 100); echo $cache->getCache("zhang"); //$cache->removeCache("zhang"); $cache->setCache("liu", "liuqi", 100); echo $cache->getCache("liu"); class Cache{ public $cacheFile…
2024-11-25 阅读全文 →
FWQ
小程序
微信公众平台开发微信公众平台通用开发框架
一、思考 开发了几个微信项目,一直在思考:如何将微信相关的处理与业务系统联系在一起?如何做到彼此分离,且易于扩展?能否开发一套独立的微信服务框架,支持各种业务应用? 二、现有常用的服务框架 支持多种业务应用,我们通过分层的方式来实现。将复杂的系统进行分层,将一些功能或者特有的逻辑进行封装,封装为不同的基础服务或中间件。业务层无需关心底层具体实现,只需进行简单调用、组装,即可支撑强大的业务应用。这样保证了层级独立,也使得系统易于维护和扩展。在一个平台基础上,可以构建多种业务应用。就像建楼房,地基打好了,楼房样式可以多种多样。也好比做菜,各种食材准备好了,可以进行不同搭配组合,就能做出不同的美味。常用的框架结构:MVC、MVVM等。以下就是通常的MVC架构。   三、微信服务框架 但是微信公众平台与以往的项目有所不同。其实现不再基于计算机底层实现。从应用层面讲,需要对业务的上层,即显示层和前端逻辑层、通信层,进行封装,下面才是真正的业务系统。从整体考虑,系统通过设计通用微信服务框架,支持所有业务。微信服务框架的改动,只与微信接口的调整做相关。多个业务系统,公用一套微信服务框架。这里介绍一种实现架构,如有欠缺,欢迎批评指正。 1、由微信服务框架,负责与微信服务器进行交互,包括验证签名、消息处理、消息分发、安全策略、日志处理等。 2、通过服务接口,将微信服务框架与业务逻辑进行分离,通过服务注册,将业务服务注册到微信服务框架。 3、通过微信服务框架的服务分发器,调用具体的业务应用。 4、业务应用,可以全新开发,也可以在已有的业务逻辑基础上,封装相关服务,并提供对应Provider,对微信接口予以支持。  具体框架图如下所示:    四、未来信息系统实现的一些愚见 仅仅是个人的一些看法。 从一个业务系统长远发展来看,一套业务系统,UI端会很多。特别是移动互联网的发展,许多功能需要移动化,之前的PC端、Web端,已经有一点的局限。 还有云计算的发展和深入,我们的业务服务也可以部署在云端。这些都对传统的信息系统提出了挑战。 如何将业务系统与前端展现相分离?如何支持多终端?能否实现一套业务逻辑,多端展现? 无论是开发新系统新应用,还是在已有的系统上扩展,这些问题必须认真考虑。业务逻辑需要更加细化、更加独立,业务逻辑需要从前端抽取出来,为了适应各种终端应用,可能需要加入一些适配层、代理层。尽管难度很大,但是在这个信息化高速发展的时期,如果不顺应潮流,势必被时代所淘汰。所以,变革不可避免。未来信息系统开发框架可能会变为下图所示。这里只是一个简单提纲,以后会就这一点进行专题介绍。  更多微信公众平台开发微信公众平台通用开发框架相关文章请关注PHP中文网!
2024-11-25 阅读全文 →
FWQ
小程序
JS、php关键字搜索函数使用详解
这次给大家带来JS、php关键字使用详解,JS、php关键字搜索函数使用的有哪些,下面就是实战案例,一起来看一下。 : a. 代码: /* @desc:js搜索函数,可用于关键字匹配 @param key 关键字 @param str 要搜索的字符串 @return out 匹配关键字前后出现的位置 */ function search(key,str){ var min = 0 var max = str.length var index…
2024-11-25 阅读全文 →
FWQ
小程序
Proxy封装小程序的异步调用
上回写到: 没看上回的同学,在这里:在微信小程序中使用 async/await function wxPromisify(fn) {     return async function(args) {         return new Promise((resolve, reject) =&gt; {             fn({                 ...(args || {}),                 success: res =&gt; resolve(res),                 fail: err =&gt; reject(err)             });         });     }; } export function toAsync(names) {     return (names || [])         .map(name =&gt; (             {                 name,                 member: wx[name]             }         ))         .filter(t =&gt; typeof t.member === "function")         .reduce((r, t) =&gt; {             r[t.name] = wxPromisify(wx[t.name]);             return r;         }, {}); }…
2024-11-25 阅读全文 →
FWQ
小程序
微信小程序之变量和作用域的详细解析
本篇文章给大家带来的内容是关于微信小程序之变量和作用域的详细解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一,全局变量 在app.js里的变量和方法是全局的。 //app.js App({   onLaunch: function () {     // 展示本地存储能力     var logs = wx.getStorageSync('logs') || []     logs.unshift(Date.now())     wx.setStorageSync('logs', logs)     // 登录     wx.login({       success: res =&gt; {         // 发送 res.code 到后台换取 openId, sessionKey, unionId       }     })     // 获取用户信息     wx.getSetting({       success: res =&gt; {         if (res.authSetting['scope.userInfo']) {           // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框           wx.getUserInfo({             success: res =&gt; {               // 可以将 res 发送给后台解码出 unionId               this.globalData.userInfo = res.userInfo               // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回               // 所以此处加入 callback 以防止这种情况               if (this.userInfoReadyCallback) {…
2024-11-25 阅读全文 →
FWQ
小程序
diff的对象是虚拟dom
这次给大家带来diff的对象是虚拟dom,使用diff虚拟的有哪些,下面就是实战案例,一起来看一下。 虚拟dom diff算法首先要明确一个概念就是diff的对象是虚拟dom,更新真实dom则是diff算法的结果 Vnode基类 constructor ( 。。。 ) { this.tag = tag this.data = data this.children = children this.text = text this.elm = elm this.ns = undefined this.context…
2024-11-25 阅读全文 →