微信小程序的简单应用-Todolist

微信小程序的简单应用-Todolist,第1张

今天开始学微信小程序,做了一个简单的todolist小demo,先上效果图

wxml文件:

js文件:

wxss文件:

特别注意的时,微信小程序没有像vue那样可以双向数据绑定,它是通过 this.setData() 来把变量渲染到视图层,所以这里要特别注意它的使用

内嵌网页中可使用JSSDK 1.3.0提供的接口,可坑就来了,居然不支持支付接口的调用,经过一番研究,总算打通了两边的交互。

大概流程

1、先说明涉及到的文件,下面会用到

1.1 app.js:小程序的app.js文件,在globalData里定义一个全局变量paySuccessUrl: '',用来保存支付成功跳转url

1.2 wxminiwebview.js:小程序中放web-view的界面 1.3 wxminipay.js:小程序原生支付界面

1.4 web_pay.vue:内嵌网页会调起支付的路由组件界面,由于我是用vue+vue-router写的,所以你最好了解下vue和vue-router,记得引入微信jssdk1.3.0,最新版本才包含小程序相对应方法。很遗憾,微信并没提供npm包,github有人提供的commonjs引入方式的微信jssdk版本也只有1.2.0,所以就只能这样引入了。

<script src="./static/jweixin-1.3.0.js">script>

2、首先我们像官网那样正常嵌入一个内嵌网页,url是wxmini_webview.js中data中定义的变量,webview加载的就是网页就是这个url。

<web-view src="{{url}}">web-view>

3、在内嵌网页web_pay.vue里判断当前是否是微信环境。

window.wx.ready(function () {

isWxMini = window.__wxjs_environment === 'miniprogram'

})

4、在内嵌网页web_pay.vue调用支付时把支付金额,支付说明,支付成功跳转url...(任何你想要的参数,记得encodeURIComponent),传给小程序原生页面。

if (isWxMini) {

let jumpUrl = encodeURIComponent(window.location)

let path = `/page/pay/pay?amount=${amount}&title=${desc}&jumpUrl=${jumpUrl}`

window.wx.miniProgram.navigateTo({

url: path

})

}

5、在小程序支付界面wxmini_pay.js里获取到内嵌网页传过来的值,这里演示方便,实际上是在page的data里存储这些会显示在界面的值好些。

onLoad: function (options) {

console.log(options)

// 获取网页传过来的值

// TODO 用es6解构来获取值TODO

jumpUrl = options.jumpUrl

amount = options.amount

title = options.title

...

},

6、支付成功后,把跳转url附带支付结果及当前时间保存到全局变量。

paySuccess () {

let currentTime = new Date().getTime()

//这是为了防止wxmini_webview.js文件里调用setData由于前后两个url一致导致路由不触发刷新的bug

jumpUrl = options.jumpUrl+encodeURIComponent(`?payResult=1&time=${currentTime}`)

//payResult=1表示支付成功,这里我偷懒了直接在url后面补?,实际情况比较复杂

//为了实现支付成功返回后的无刷新加载,这里的参数应该是属于路由web_pay.vue的,而不是属于window.location.search的

//所以要判断路由锚点#的位置和是否已经有路由参数(如果是vue-router的history模式我没用过,应该和window.location一样吧)

getApp().globalData.paySuccessUrl=jumpUrl //保存跳转url到小程序全局变量里

wx.navigateBack() //返回会上个页面,也就是承载网页的容器页面wxmini_pay.js

}

7、回到小程序wxmini_webview.js,会触发onshow,在里面进行界面无刷新加载。

onShow: function () {

console.log('on show')

let paySuccessUrl = getApp().globalData.paySuccessUrl

getApp().globalData.paySuccessUrl="" //清空支付成功url,防止一些 *** 作触发onShow事件

if (paySuccessUrl) {

let url = decodeURIComponent(paySuccessUrl)

this.setData({

//这里在次说明下步骤6中的&time=${currentTime},就是因为不加这个当你第一次支付成功回来这里

//这个url跟你第二次支付成功回来这里是一样的,会导致第二次支付开始,这里的setData方法失效

url

})

}

},

8、步骤7中的setData会触发webview中的网页加载,由于我采用的是vue-router,而且前后两个url只有路由的参数query不一样,所以并不会触发界面刷新,也不会触发路由的重新加载,而是只会触发beforeRouteUpdate 这个方法,举个例子,现在支付前界面是https://host/#/pay,然后支付成功后跳转https://host/?payResult=1&time=123456#/pay,此时界面不会刷新,pay路由也不会重新加载,而是触发beforeRouteUpdate (to, from, next),你要做的只是在这里界面解析to.query里的数据,然后该干嘛干嘛

beforeRouteUpdate (to, from, next) {

console.log('路由发生改变,很有可能是小程序的支付成功回调')

let payResult = to.query.payResult

if (payResult) { // 小程序支付成功

if (payResult === '1') {

console.log('支付成功,下班打卡走人')

}

}

next()

},

1:仿豆瓣电影微信小程序

https://github.com/zce/weapp-demo

2:微信小程序移动端商城

https://github.com/liuxuanqiang/wechat-weapp-mall

3:Gank微信小程序

https://github.com/lypeer/wechat-weapp-gank

4:微信小程序高仿QQ应用

https://github.com/xiehui999/SmallAppForQQ

5:微信中的知乎

https://github.com/RebeccaHanjw/weapp-wechat-zhihu

6:实现一个移动端小商城

https://github.com/skyvow/m-mall

7:微信小程序demo

https://github.com/web-Marker/wechat-Development

8: 跑步微信小程序Demo

https://github.com/alanwangmodify/weChatApp-Run

9:简单的v2ex微信小程序

https://github.com/jectychen/wechat-v2ex

10:腾讯云微信小程序

https://github.com/tencentyun/weapp-client-demo

11:微信小程序-微票

https://github.com/wangmingjob/weapp-weipiao

12:微信小程序demo 仿手机淘宝

https://github.com/ChangQing666/wechat-weapp-taobao

13:一个为微信小程序开发准备的基础骨架

https://github.com/zce/weapp-boilerplate

14:巴爷微信商城的简单版本

https://github.com/bayetech/wechat_mall_applet

15:微信小程序 - 电影推荐

https://github.com/yesifeng/wechat-weapp-movie

16:微信小程序-知乎日报

https://github.com/myronliu347/wechat-app-zhihudaily

17:微信小程序: 音乐播放器

https://github.com/eyasliu/wechat-app-music

18:使用微信小程序实现分答这款APP的基础功能

https://github.com/davedavehong/fenda-mock

19:微信小程序开发demo-地图定位

https://github.com/giscafer/wechat-weapp-mapdemo

:20:微信小程序 - 豆瓣电影

https://github.com/hingsir/weapp-douban-film

21:wepy仿微信聊天界面

https://github.com/wepyjs/wepy-wechat-demo

22:仿 「ONE · 一个」 的微信小程序

https://github.com/ahonn/weapp-one

23:微信小程序集成Redux实现的Todo list

https://github.com/charleyw/wechat-weapp-redux-todos

24: 基于Zhihu Live数据的微信小程序

https://github.com/dongweiming/weapp-zhihulive

25:微信小程序之小熊の日记

https://github.com/harveyqing/BearDiary

26:仿网易云音乐APP的微信小程序

https://github.com/sqaiyan/netmusic-app

27:微信小程序的Flex布局demo

https://github.com/icindy/wxflex

28:番茄时钟微信小程序版

https://github.com/kraaas/timer

29:Wafer 服务端 Demo

https://github.com/tencentyun/weapp-node-server-demo

30:微信小程序版聊天室

https://github.com/ericzyh/wechat-chat

31:微信小程序版简易计算器,适合入门练手

https://github.com/dunizb/wxapp-sCalc

32:微信小程序示例一笔到底

https://github.com/CFETeam/weapp-demo-session

33:基于面包旅行 API 制作的微信小程序示例

https://github.com/romoo/weapp-demo-breadtrip

34:新闻阅读器

https://github.com/vace/wechatapp-news-reader

35:一个简单的微信小程序购物车DEMO

https://github.com/SeptemberMaples/wechat-weapp-demo

36:微信小程序-公众号热门文章信息流

https://github.com/hijiangtao/weapp-newsapp

37:通过Node.js实现的妹子照片爬虫微信小程序

https://github.com/litt1e-p/weapp-girls

38:从FlexLayout布局开始学习微信小程序

https://github.com/hardog/wechat-app-flexlayout

39:HiApp 微信小程序版

https://github.com/BelinChung/wxapp-hiapp

40:微信小程序的简单尝试

https://github.com/zhengxiaowai/weapp-github

41:集美大学图书馆的便捷工具

https://github.com/ToadWoo/bookbox-wxapp

42:微信小程序版妹纸图

https://github.com/brucevanfdm/WeChatMeiZhi

43:V2ex 微信小程序版

https://github.com/bestony/weapp-V2ex

44:微信小程序仿百思不得姐

https://github.com/SureZhangHW/WXBaiSi

45:微信小程序音乐播放器应用

https://github.com/xingbofeng/wx-audio

46:医药网原生APP的微信小程序DEMO

https://github.com/jiabinxu/yiyaowang-wx

47:微信小程序跟读

https://github.com/gxmzjxk/wxreading

48:微信小程序瀑布流布局模式

https://github.com/icindy/WxMasonry

49:微信小程序HotApp云笔记

https://github.com/hotapp888/hotapp-notepad

50:小程序模仿——网易云音乐

https://github.com/MengZhaoFly/wechatApp-netease_cloudmusic

51:微信小程序商城demo

https://github.com/lin-xin/wxapp-mall

52:微信小程序版的扫雷

https://github.com/jsongo/wx-mime

53:专注管理时间的微信小程序

https://github.com/SeaHub/PigRaising

54:微信小程序版干货集中营

https://github.com/iwgang/GankCamp-WechatAPP

55:英雄联盟(LOL)战绩查询

https://github.com/xiaowenxia/weapp-lolgame

56:微信小程序首字母排序选择表

https://github.com/icindy/wxSortPickerView

57:微信小程序版豆瓣电影

https://github.com/David-Guo/weapp-douban-movie

58:简单的实现了1024的游戏规则

https://github.com/RedLove/WexinApp_1024

59:微信小程序试玩

https://github.com/uniquexiaobai/wechat-app-githubfeed

60:微信小程序逗乐

https://github.com/mkxiansheng/doule

61:一步步开发微信小程序

https://github.com/Gavin-YYC/wxApp

62:一个 meteor 的 React todo list 例子

https://github.com/leijing7/wx-mina-meteor

63:微信小程序健康菜谱

https://github.com/bestTao/caipu_weixin

64: jspapa微信小程序版本

https://github.com/biggerV/jspapa-wx

65:微信小程序版的CNodeJs中文社区

https://github.com/Shaman05/CNodeJs-WXAPP

66:LeanCloud 的微信小程序用户登陆Demo

https://github.com/bestony/weapp-LeanCloud

67: 微笑话微信小程序

https://github.com/zszdevelop/wejoke

68:微信小程序开发的App

https://github.com/chongbenben/liwushuoapp

69:体育新闻微信小程序

https://github.com/havenxie/weapp-sportsnews

70:基于Labrador和mobx构建的小程序开发demo

https://github.com/spacedragon/labrador_mobx_example


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8141442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存