作者文章

fwq

FWQ
小程序
小程序开发九宫格界面的导航的代码实现
本篇文章主要介绍了小程序开发实战:实现九宫格界面的的代码实现,具有一定的参考价值,有兴趣的可以了解一下。 小程序是长在微信上的,是移动端的界面,为了能够更方便的使用,我们常常希望使用九宫格界面的方式作为导航,那要如何实现呢? 基于一个简单的思考,九宫格就是三行三列,如果把行作为一个单位,再将每一行分成三列,那是不是就可以了?我们实践一下。 首先来考虑九宫格数据的生成,每一个格子需要有一个图标、一个标题、一个便于跳转的路由,那天现在我们有九个页面,所以定义一个即可。为了更好的进行后续的配置,我们将这个数组独立到一个文件中routes.,然后将其在index.js页面中引用,routes放到index的目录下。 var PageItems =   [    {     text: '格子1',     icon: '../../images/c1.png',     route: '../c1/c1',    },    {     text: '格子2',     icon: '../../images/c2.png',     route: '../c2/c2',    },     {     text: '格子3',     icon: '../../images/c3.png',     route: '../c3/c3',    },    {     text: '格子4',     icon: '../../images/c4.png',     route: '../c4/c4',    },    {     text: '格子5', …
2024-11-25 阅读全文 →
FWQ
小程序
微信小程序开发指南:关于轮播
应用中最常见的应该就是轮图了,本文讲轮播的实现,部分内容来源于官方文档,增加了笔者实际操作中的一些问题与经验。 本文基于微信小程序公测版,ide:微信开发者工具 0.10.102800 组件 swiper 当不设置 vertical 属性,或者 vertical=”false” 时,指示点在组件下部,图片轮播从左至右,效果如下: 当设置 vertical=”true” 时,指示点在组件右部,图片轮播从下至上,效果如下: 注意: swiper是一个容器类视图,但是其中只能放置组件,如放置其他节点,会被自动删除。 swiper-item 代码如下: <!--main.wxml--> <view>     <swiper>         <block>             <swiper-item>                 <image></image>             </swiper-item>         </block>     </swiper></view> 登录后复制 //main.js //获取应用实例 var app = getApp() Page({     data: {         indicatorDots: true,…
2024-11-25 阅读全文 →
FWQ
小程序
微信小程序封装http请求类的代码实例
本文主要介绍了关于小程序网络请求的封装的相关资料。具有很好的参考价值。下面跟着小编一起来看下吧 以前写过一篇关于微信小程序上拉加载,上拉刷新的文章,今天写的是关于小程序网络请求的封装。 在这里首先声明一个小程序文档的bug,导致大伙们在请求的时候,服务器收到不到参数的问题 示例代码: wx.request({  url: 'test.php', //仅为示例,并非真实的接口地址  data: {  x: '' ,  y: ''  },  header: {  'Content-Type': 'application/json'  },  success: function(res) {  console.log(res.data)  } }) 登录后复制 其中header 中的Content-Type,应该用小写content-type才能让服务器收到参数。让我折腾的好久,改了服务器仍然不行,原来是这个问题。参数在request payload中,服务器不能收到,使用如下转换之后 function json2Form(json) {   var str = [];   for(var p in json){   str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p]));   }   return str.join("&amp;");  }…
2024-11-25 阅读全文 →
FWQ
小程序
微信开发系之新手接入指南
微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微信服务器将接收到的消息post到用户接入时填写的url中,在url处理程序中,首先判断消息的合法性,判断成功后根据消息体的内容做相应的相应。原理很容易理解,接触过socket的可能理解起来更容易。 然而,微信的文档有的时候确实有点让人摸不着头脑,关于微信接入的文档写的确实不敢恭维啊。官方文档写的第一步是“申请消息接口”,这里是需要填写一个url的,此url用来处理微信发送的消息的,但微信把url中相关的配置写在了第二步,一不小心就把新手给坑了。下面我按照我的理解来进行解释。 首先,开发者在接入时,微信服务器将发送get请求到你填写的url上,此请求携带四个参数,分别signature(微信加密签名,signature结合了开发者填写的token参数和请求中的stamp参数、nonce参数。),timestamp(),nonce(随机数),echostr(随机字符串).用 HttpContext.Current.Request.RawUrl可以获取当前请求的原始url,如下图所示: 开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。 加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。 登录后复制 下面是代码实现。 登录后复制 首先,在你的处理程序中(我是新建了一个一般处理程序wx.ashx),判断当前请求的类型,因为接入时,是发送的GET请求,消息处理是发送的POST请求。如下图: 登录后复制 这里我对验证url的方法进行封装。 登录后复制 /// <summary>         /// 验证url权限, 接入服务器        /// </summary>         /// <param>         /// <returns></returns>         public static bool ValidUrl(string token)         {            string echoStr = VqiRequest.GetQueryString("echoStr");            if (CheckSignature(token))             {                if (!string.IsNullOrEmpty(echoStr))                 {                     Utils.ResponseWrite(echoStr);                    return true;                 }…
2024-11-25 阅读全文 →
FWQ
小程序
php微信公众账号开发遇到的五个坑总结
这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 菜单回复是需要处理XML文件的,我们根据微信返回的XML文件,可以得到每个微信用户相对于微信公众号的唯一标识。微信公众平台的机制简单的将就是我们自己输出固定格式的xml文件,然后微信APP负责解析,得到我们想要的信息,然后对信息统一处理。  第六坑,如果你看微信文档,那么,绝对坑死你,上图。这里的ToUserName和FromUserName一定特么的要分清楚了,记住,千万不要写反了,用户对于微信而言是A→B,那么微信对于用户就是反着来的,貌似现在应该说清楚了。 /// <summary>  /// 接收微信发送的XML消息并且解析  /// </summary>  private void ReceiveXml()  {  try  {   Stream requestStream = System.Web.HttpContext.Current.Request.InputStream;   byte[] requestByte = new byte[requestStream.Length];   requestStream.Read(requestByte, 0, (int)requestStream.Length);   string requestStr = Encoding.UTF8.GetString(requestByte);   if (!string.IsNullOrEmpty(requestStr))   {    //封装请求类   XmlDocument requestDocXml = new XmlDocument();   requestDocXml.LoadXml(requestStr);   XmlElement rootElement = requestDocXml.DocumentElement;   WxXmlModel WxXmlModel = new WxXmlModel();   if (rootElement != null)   {    WxXmlModel.ToUserName = rootElement.SelectSingleNode("ToUserName") == null ? "" : rootElement.SelectSingleNode("ToUserName").InnerText;    WxXmlModel.FromUserName = rootElement.SelectSingleNode("FromUserName") == null ? "" : rootElement.SelectSingleNode("FromUserName").InnerText;    WxXmlModel.CreateTime = rootElement.SelectSingleNode("CreateTime") == null ? "" : rootElement.SelectSingleNode("CreateTime").InnerText;    WxXmlModel.MsgType = rootElement.SelectSingleNode("MsgType") == null ? "" : rootElement.SelectSingleNode("MsgType").InnerText;    switch (WxXmlModel.MsgType)…
2024-11-25 阅读全文 →
FWQ
小程序
小程序怎么查看base64图片
小程序怎么查看base64图片?下面本篇文章给大家介绍一下小程序中预览base64图片的方法,希望对大家有所帮助! 一、后台传过来的图片为base64格式的,显示的话用【”data:image/PNG;base64,” + data】就可以正常显示。然后在调用微信API接口previewImage却有诸多问题,如: windows开发工具黑屏 部分安卓机型无法显示 控制台报错等 二、经过查询,找到了官方的回答。微信官方的意思是需要用url地址,不支持base64格式,以下是微信官方回答: wx.previewImage API 预览base64图片导致微信闪退? | 微信开放社区 (qq.com)https://developers.weixin.qq.com/community/develop/doc/00088c9e44c3d880597ab22b15bc00?highLine=wx.previewImage%20base64 解决方案 思路:先把base64作为临时文件存到本地,然后预览,预览结束时删除临时文件 // 获取应用实例 const app = getApp() Page({   data: {     //base64数据,由后台传过来     base64: '',     //本机的临时文件路径     localImgUrl: ''   },   onShow: function() {     // 在这里删除临时文件     var localImgUrl = this.data.localImgUrl;…
2024-11-25 阅读全文 →
FWQ
CMS教程
怎么样让DEDECMS的list标签支持weight排序
怎么样让的list标签支持weight排序? DEDECMS系统支持文档权重weight排序,可以在模板中使用: {dede:arclist row='10' titlelen='50' orderby='weight'} •[field:textlink/] {/dede:arclist} 登录后复制 登录后复制 其中的orderby=’weight’就实现了文档按照权重排序了。这是arclist标签,可以用在任何位置来调用文档列表. 然而,在栏目列表页,如果你要使用list标签(实现文档列表分页),也想用权重(weight)排序, {dede:list pagesize='10' titlelen='50' orderby='weight'} •[field:textlink/] {/dede:list} 登录后复制 你会发现,你的列表并没有按照权重(weight)排序,无论你怎么修改,它的顺序就还是老样子! 原因:dedecms对权重weight排序的支持仅arclist标签,并不支持list标签 解决办法: 1、打开文件arc.listview.class.php 2、查找”else if($orderby==”lastpost”) {” 语句,大概在609行,在此行前面按下回车健,插入如下语句: else if($orderby=="weight") { $ordersql = " order by arc.weight $orderWay"; } 登录后复制 3、继续查找”if(ereg(‘hot|click|lastpost’,$orderby))”语句,修改为: if(ereg('hot|click|weight|lastpost',$orderby)) 登录后复制 修改完成后,保存,如果目标里面已经使用了weight排序,生成一下,就可以看到,文档列表已经安装weight排序 4、模板调用 {dede:arclist row='10' titlelen='50' orderby='weight'} •[field:textlink/] {/dede:arclist}…
2024-11-25 阅读全文 →
FWQ
CMS教程
帝国cms千万数据在哪看
帝国cms千万数据查看步骤:登录后台进入数据管理模块。查看数据库链接信息(服务器地址、用户名、密码、数据库名称)。使用数据库管理工具连接至数据库。查找以”dede_”为前缀的数据表。查看数据表结构和数据行中的数据。 帝国CMS千万数据查看方法 1. 登录帝国CMS后台 打开帝国CMS后台登录页面 输入用户名和密码登录 2. 导航至数据管理模块 在后台菜单中找到“数据管理”模块 单击“数据管理”子菜单下的“批量采集”,进入数据采集管理页面 3. 查看数据库链接信息 在数据采集管理页面中,单击“采集接口配置” 找到“数据库链接”选项卡 4. 获取数据库链接信息 复制“数据库服务器地址”、“数据库用户名”、“数据库密码”和“数据库名称”信息 这些信息将用于连接到数据库并查看数据 5. 使用数据库管理工具连接 使用数据库管理工具(如MySQL Workbench或phpMyAdmin) 输入获取到的数据库链接信息以建立连接 6. 查找数据表 连接到数据库后,查找数据表 帝国CMS数据通常存储在以“dede_”为前缀的表中,例如:dede_archives、dede_member、dede_feedback 7.…
2024-11-25 阅读全文 →
FWQ
CMS教程
DedeCMS的TAG标签无法保存和自动删除怎么办
的tag标签无法保存和自动删除怎么办? 几个月前,我的升级5.5,不幸的是TAG出现了故障,具体问题是:在后台发布文章,TAG无法保存,自动删除。今天再仔细研究一下,是不保存新的 TAG,之前填写过的TAG可以保存。例如我填写了“电脑,电脑教程,Word”几个TAG,发布以后可能只显示“电脑,Word”两个TAG。 推荐学习: 本来判断是程序的问是,但用其它正常使用的程序用这个数据库,问题依旧;那么就肯定是数据库的问题了,DedeCMS后台有“SQL命令运行器”, 可以看到DedeCMS所有的数据表,在这里我找到了两个TAG的表,“dede_tagindex”和“dede _taglist”,选中其中一个表,点击查看表结构,然后拿其它程序对比一下,发现了问题。 dede_tagindex 这个表少了一个“`typeid` smallint(5) unsigned NOT NULL default ‘0’,”字段,“`tag` char(20) NOT NULL default ”,”应该是12,我的变成了20。 dede _taglist 这个表多出了一个“KEY `aid` (`aid`)”字段。 问题找出来了,接下来就是如何把它添加、删除和修改的问题了,具体方法如下: 进入phpmyadmin里面点击左边数据库下拉菜单,选择你的网站数据库,拉到最下面,找到“dede_tagindex”这个表(前面的Dede是你安装时候的名称,可能不同),点击它打开,然后右面会显示出表结构,在tag后面添加一个typeid字段,如图所示: 图中红线框中的地方是添加新字段  …
2024-11-25 阅读全文 →
FWQ
小程序
IOS微信开发支付的步骤详解
前言:下面介绍微信支付的开发流程的细节,图文并茂,你可以按照我的随笔流程过一遍代码。包你也学会了微信支付。而且支付也是面试常问的内容。 正文: 1、首先在开始使用微信支付之前,有一些东西是开发者必须要知道的,打开下面链接:   pay.weixin.qq.com/wiki/doc/api/app.php?chapter=3_1     然后可以看到下面的页面,这个就是微信支付商户平台的开发文档,很多东西是可以查阅和了解的,在开发使用微信SDK支付功能的时候,遇到了问题也可以到这找找相关须知信息:        然后,还要告诉读者,点击这个开发文档中的” 支付账户>支付账户 “,然后滚动当前页面到最下面可以看到关于APPID:        注意:这个APPID是开发中使用微信支付必须要用的东西,而这个APPID也只有商户通过在该微信支付平台注册,花个300元,填写很多相关重要信息,还要上传营业执照等必要手续,才能获取的APPID。   而商业app应用程序,在客户使用app微信消费,程序会根据这个唯一的APPID,查找到商户,然后把消费者的金额数传递到商户的账户里。      对开发者的福利:对于开发者,微信支付平台提供了测试的Demo,也在Demo源码中提供了有用的用于测试代码的APPID。这样开发者就除去了花个300元买个APPID的必要性。 2、为了读者能够更便利以及更针对性的学习这个微信SDK的使用过程,本人就建立一个普通的工程,直接在上面简易的使用微信SDK,并完成微信支付。   pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1   点进去之后下载SDK,另外也要把Demo下载下来,可以带你参考学习源码的使用,也可以留着以后进一步的探究:        在新建的工程里,我们把下载的SDK拖进去,下载的SDK文件中有五个文件,那个read_me.txt可以不用留着工程里,随你喜欢,但是可以打开阅读里面的提示信息:        我们先打开read_me.txt文件,其实里面就是讲了最近几个版本的更新中解决的问题,以及使用该SDK的注意事项,红色框框起来的部分我在后面的操作中都会用上,SO这个read_me文件很重要的哦。      3、好,我们就按照read_me.txt做一下必须要做的流程:   Xcode 7版本之后需要导入一下框架和链接库:        如果是XCode…
2024-11-25 阅读全文 →