- 使用 vux UI组件库
- 使用 vue-navigation 缓存页面,此库实现了前进刷新后退读缓存的功能,像原生APP导航一样。用子路由的方式实现tabbar有bug,用vuex解决了。
- 使用 lib-flexible 解决移动页面适配
来一个清单
微信登录
应用需要登录后可以访问,微信登录要实现的功能是从任意一个链接进入,判断是否登录,未登录跳到微信授权,成功后返回登录前链接,由于对PHP的微信授权做得比较多,所以微信授权放在的PHP实现,这里说一下实现过程。路由方式使用了 history 模式,打包好的 index.html 文件用PHP渲染出来。路由path定义统一的格式 r/xxxx ,这样对于PHP端的路由可以实现匹配,只要是这个格式的路由都匹配到渲染 index.html 的方法,要不然访问的时候服务端出现404错误。
PHP端路由配置,这里是laravel,其他框架应该也差不多
为什么不用 hash 模式呢,因为用hash模式的下PHP获取来源地址的时候获取不到#后面参数,虽然可以用参数传给后端,但是好麻烦,所以就用 history 模式了,后面的支付和分享也是这样
微信登录流程
用户登录状态使用token,token定义在index.html这个页面里面
微信支付
微信支付要解决的就是路径配置问题,由于我们的路由都是以 r/xxxxx 的格式来的,所以在微信那边就直接填写 nofollow" href="http://xxx.xxxx.com/r/">http://xxx.xxxx.com/r/ ,注意需要支付的页面传参请使用 query 的方式。要不然r后面就会出现目录了,比如 r/goods/id/1 要换成 r/goods?id=1,这样只要定义一个路径全站都可以拉起支付
自定义分享
由于使用了 history 的路由模式,所以ios的问题需要解决,在路由跳转后,安卓能正常难道当前的路径,ios获取的是你第一打开应用的路径,所以在签名的时候就得注意了,安卓拿当前路径去签名,ios要拿第一次打开页面的路径去签名。这就是为什么要在路由初始化之前要定义一个第一次打开应用的路径。就是 index.html 里面那个具体怎么去签名,我这里使用的是 axios
关键代码
后台要拿三个
拿到签名后怎么初始化呢
这是vux提供的
由于应用使用了页面缓存,所以在定义自定义分享数据的代码就要放在 activated 里面执行,具体实现
首先定义一个 init=false
mounted 开始请求数据拿到签名
在 methods 定义一个方法
activated 定义
keep-alive 组件激活时重新设置一下自定义分享的数据,要不然如果在返回前的页面也定于的自定义分享,返回后页面没有刷新,分享的数据就会是之前的,这里重新定义一下就可以了。
总结
以上所述是小编给大家介绍的基于vue开发的在线付费课程应用过程。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。