设为首页 收藏本站
查看: 2401|回复: 0

[经验分享] 微信小程序

[复制链接]

尚未签到

发表于 2017-2-25 09:05:24 | 显示全部楼层 |阅读模式
  1.开发前奏
  1>  注册小程序
  需政府 媒体类 和其他组织申请注册;
  2>  开发前准备,绑定开发者
  登录微信公众平台小程序,进入用户身份- 开发者,新增绑定开发者,已认证的小程序可以绑定不多于20个开发者;
  3>获取appID
  此appid只是微信小程序中的,非公众号中的appid;不能混淆;
  4>小程序涉及到会话状态或有登录过程的,需要配置https服务器
  也就是说在微信小程序中,所有的网路请求受到严格限制,不满足条件的域名和协议无法请求,
  只允许和在 mp.weixin.qq.com 中配置好的域名进行通信,
          网络请求必须 HTTPS 协议
           DSC0000.png
  5>下载安装开发工具
  集成了开发调试、代码编辑及程序发布等功能;
  6>打开开发工具,用管理员或者绑定的开发者扫码登录
DSC0001.png

  7>新增项目,把获取的小程序appID填上,并打开项目目录;
  初学者在文档中下载demo 和quickstart两个列子;地址: https://mp.weixin.qq.com/debug/wxadoc/dev/?t=20161107
  8>当然需要先了解微信小程序的规则机制,mp中的文档说的很清晰;
  2.开发
  无涉及到会话过程,跳过此处;
  开发前准备或者了解腾讯提供整套的一站式解决方案;
DSC0002.png

  由于微信的网络请求接口 wx.request() 没有携带 Cookies,这让传统基于 Cookies 实现的会话管理不再适用。
  通过 wx.login() 获取到用户登录态之后,需要维护登录态。
  多种方式解决:
  1) 开发者要注意不应该直接把 session_key、openid 等字段作为用户的标识或者 session 的标识,而应该自己派发一个 session 登录态(请参考登录时序图https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html?t=20161107)。对于开发者自己生成的 session,应该保证其安全性且不应该设置较长的过期时间。session 派发到小程序客户端之后,可将其存储在 storage ,用于后续通信使用。
  2)为了让处理微信小程序的服务能够识别会话,腾讯也推出了 丰富的DSK去解决;
  参考连接: https://github.com/tencentyun/weapp-solution
  服务端的PHP SDK    C# SDK   Java SDK  Node SDK 等
  客户端SDK :weapp-client-sdk
  其中也有相应的demo等;
  3)自己下载demo搭了一个
DSC0003.png

  3.websocket
  微信小程序框架提供了WebSocket请求建立、数据通信、连接关闭等一系列客户端接口,
  用于与远程支持WebSocket协议的服务器通信,以便小程序能实现服务器主动push等更接近native的体验。
  本地搭建websocket demo,在mp上下载剪刀石头布Demo
  代码结构:
DSC0004.png

  app是目录是客户端 就是小程序运行的目录,server是服务端(用的是nodejs,express ,socket.io)
  1)本地server服务搭建:
  1>安装nodejs (6版本以上) 略
  我nodejs本地版本: DSC0005.png
  2> 进入server目录,将server目录下的.ts转换成.js文件
          Boby-Mac:server boby$  sudo npm install typescript -g
          Boby-Mac:server boby$  tsc app.ts                            #就看到.js文件生成了
              3>启动服务
          Boby-Mac:server boby$  PORT=9595 node app.js
      本地服务搭建成功
              DSC0006.png
        2)小程序app配置
             1>创建项目,不要开启ES6转ES5(app中用到); 开发环境下不校验
                  DSC0007.png
               2>本地小程序工具现在是v0.11.112301 的版本,app调试的时候promise报错(暂不支持ES6),从网上下载了一个promise.js放入本地app/lib下,
          在app/lib/co.js  app/lib/promiseify.js  app/lib/wxsocket.io.js  app/page/game/game.js 中require promise.js

               3>在app/config.js 文件中host:'localhost:9595'
              DSC0008.png
             4>在app/pages/game/game.js 中 修改成socket连接本地的ws协议的(ws://localhost:9595)

                        DSC0009.png
  最后搭建成功了
DSC00010.png

DSC00011.png

  附上相关文档资源:
  https://www.qcloud.com/solution/la.html?utm_source=pcsem1&utm_medium=bdgj3397&utm_campaign=baidu
  https://mp.weixin.qq.com/debug/wxadoc/introduction/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346847-1-1.html 上篇帖子: 浅谈我的前端学习心得 下篇帖子: Install elasticsearch-head: – for Elasticsearch 5.x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表