欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于vue開發(fā)的在線付費(fèi)課程應(yīng)用過(guò)程

 更新時(shí)間:2018年01月25日 08:55:19   作者:小土狗  
這篇文章主要介紹了基于vue開發(fā)的在線付費(fèi)課程應(yīng)用過(guò)程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
  • 使用 vux UI組件庫(kù)
  • 使用 vue-navigation 緩存頁(yè)面,此庫(kù)實(shí)現(xiàn)了前進(jìn)刷新后退讀緩存的功能,像原生APP導(dǎo)航一樣。用子路由的方式實(shí)現(xiàn)tabbar有bug,用vuex解決了。
  • 使用 lib-flexible 解決移動(dòng)頁(yè)面適配

來(lái)一個(gè)清單

"dependencies": {
  "fastclick": "^1.0.6",
  "lib-flexible": "^0.3.2",
  "lodash": "^4.17.4",
  "vue": "^2.5.2",
  "vue-navigation": "^1.1.3",
  "vue-router": "^3.0.1",
  "vuex": "^2.1.1",
  "vuex-i18n": "^1.3.1",
  "vux": "^2.7.8"
 }

微信登錄

應(yīng)用需要登錄后可以訪問(wèn),微信登錄要實(shí)現(xiàn)的功能是從任意一個(gè)鏈接進(jìn)入,判斷是否登錄,未登錄跳到微信授權(quán),成功后返回登錄前鏈接,由于對(duì)php的微信授權(quán)做得比較多,所以微信授權(quán)放在的php實(shí)現(xiàn),這里說(shuō)一下實(shí)現(xiàn)過(guò)程。路由方式使用了 history 模式,打包好的 index.html 文件用php渲染出來(lái)。路由path定義統(tǒng)一的格式 r/xxxx ,這樣對(duì)于php端的路由可以實(shí)現(xiàn)匹配,只要是這個(gè)格式的路由都匹配到渲染 index.html 的方法,要不然訪問(wèn)的時(shí)候服務(wù)端出現(xiàn)404錯(cuò)誤。

php端路由配置,這里是laravel,其他框架應(yīng)該也差不多

Route::get('/', 'HomeController@index')->middleware('auth')->name("home");
Route::get('/r/{query}', 'HomeController@index')->middleware('auth')->name("home");

為什么不用 hash 模式呢,因?yàn)橛胔ash模式的下php獲取來(lái)源地址的時(shí)候獲取不到#后面參數(shù),雖然可以用參數(shù)傳給后端,但是好麻煩,所以就用 history 模式了,后面的支付和分享也是這樣

微信登錄流程

  • 打開任意鏈接 xxx.com/r/xxx
  • 先經(jīng)過(guò)php端,匹配路由,匹配失敗的話就會(huì)找不到頁(yè)面啦~
  • 匹配成功判斷登錄,未登錄就跳到微信登錄,跳轉(zhuǎn)之前先記錄當(dāng)前鏈接,登錄成功就返回記錄的鏈接

用戶登錄狀態(tài)使用token,token定義在index.html這個(gè)頁(yè)面里面

<script>
  var TOKEN = '{{$token}}';//php模板變量
  var HOST = 'http://read.xxx.com';//程序api接口域名
  var INURL = location.href //頁(yè)面域名(在ios自定義分享時(shí)候會(huì)用到)
</script>

微信支付

微信支付要解決的就是路徑配置問(wèn)題,由于我們的路由都是以 r/xxxxx 的格式來(lái)的,所以在微信那邊就直接填寫 http://xxx.xxxx.com/r/ ,注意需要支付的頁(yè)面?zhèn)鲄⒄?qǐng)使用 query 的方式。要不然r后面就會(huì)出現(xiàn)目錄了,比如 r/goods/id/1 要換成 r/goods?id=1 ,這樣只要定義一個(gè)路徑全站都可以拉起支付

自定義分享

由于使用了 history 的路由模式,所以ios的問(wèn)題需要解決,在路由跳轉(zhuǎn)后,安卓能正常難道當(dāng)前的路徑,ios獲取的是你第一打開應(yīng)用的路徑,所以在簽名的時(shí)候就得注意了,安卓拿當(dāng)前路徑去簽名,ios要拿第一次打開頁(yè)面的路徑去簽名。這就是為什么要在路由初始化之前要定義一個(gè)第一次打開應(yīng)用的路徑。就是 index.html 里面那個(gè)具體怎么去簽名,我這里使用的是 axios

關(guān)鍵代碼

let http = axios.create({
 baseURL: HOST + '/api/',
 timeout: 10000,
 headers: {
  'Accept': 'application/json',
  'Authorization': 'Bearer ' + TOKEN,
  'InUrl': INURL,//傳第一次打開頁(yè)面的鏈接
  'IsIos': isiOS//傳是否ios
 }
})

后臺(tái)要拿三個(gè)

$is_ios = request()->header('IsIos');//獲取是否ios
$in_url = request()->header('InUrl');//獲取第一次打開頁(yè)面路徑
$in_url = explode("#", $in_url)[0];//處理一下
if ($is_ios == 'true') {
  $url = $in_url;//ios用第一次打開頁(yè)面路徑簽名
} else {
  $url = url()->previous();//安卓就用請(qǐng)求這個(gè)接口的路徑去簽名
}
//用url去簽名吧

拿到簽名后怎么初始化呢

this.$wechat.config(res.data.wx_config)

這是vux提供的

由于應(yīng)用使用了頁(yè)面緩存,所以在定義自定義分享數(shù)據(jù)的代碼就要放在 activated 里面執(zhí)行,具體實(shí)現(xiàn)

首先定義一個(gè) init=false

mounted 開始請(qǐng)求數(shù)據(jù)拿到簽名

this.$wechat.config(res.data.wx_config)
 this.$wechat.ready(() => {
  this.set_share()
 })

在 methods 定義一個(gè)方法

set_share () {
 // 自定義分享到朋友圈
 this.$wechat.onMenuShareTimeline({
  title: this.share.title,
  link: this.share.url,
  imgUrl: this.share.icon,
  success: () => {}
 })
 this.$wechat.onMenuShareAppMessage({
  title: this.share.title,
  desc: this.share.desc,
  link: this.share.url,
  imgUrl: this.share.icon
 })
}

activated 定義

activated () {
 this.set_share()
}

keep-alive 組件激活時(shí)重新設(shè)置一下自定義分享的數(shù)據(jù),要不然如果在返回前的頁(yè)面也定于的自定義分享,返回后頁(yè)面沒有刷新,分享的數(shù)據(jù)就會(huì)是之前的,這里重新定義一下就可以了。

總結(jié)

以上所述是小編給大家介紹的基于vue開發(fā)的在線付費(fèi)課程應(yīng)用過(guò)程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Vue便簽的簡(jiǎn)單實(shí)現(xiàn)

    Vue便簽的簡(jiǎn)單實(shí)現(xiàn)

    本文主要介紹了Vue便簽的簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Vue中computed屬性和watch,methods的區(qū)別

    Vue中computed屬性和watch,methods的區(qū)別

    本文主要介紹了Vue中computed屬性和watch,methods的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Vue實(shí)現(xiàn)表格批量審核功能實(shí)例代碼

    Vue實(shí)現(xiàn)表格批量審核功能實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)表格批量審核功能實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 在vue中使用setInterval的方法示例

    在vue中使用setInterval的方法示例

    這篇文章主要介紹了在vue中使用setInterval的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue服務(wù)端渲染頁(yè)面緩存和組件緩存的實(shí)例詳解

    vue服務(wù)端渲染頁(yè)面緩存和組件緩存的實(shí)例詳解

    本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于vue服務(wù)端渲染頁(yè)面緩存和組件緩存的介紹(代碼),有一定的參考價(jià)值,有需要的朋友可以參考一下
    2018-09-09
  • vue?+?electron應(yīng)用文件讀寫操作

    vue?+?electron應(yīng)用文件讀寫操作

    這篇文章主要介紹了vue?+?electron應(yīng)用文件讀寫操作,如果要制作的應(yīng)用并不復(fù)雜,完全可以將數(shù)據(jù)存儲(chǔ)在本地文件當(dāng)中,然后應(yīng)用就可以通過(guò)這些文件進(jìn)行數(shù)據(jù)的讀寫,需要的朋友參考下吧
    2022-06-06
  • 一文教會(huì)你快速上手vue的登錄界面(最新版)

    一文教會(huì)你快速上手vue的登錄界面(最新版)

    幾乎每個(gè)項(xiàng)目都會(huì)使用登錄頁(yè)面,這篇文章主要給大家介紹了如何通過(guò)一文教會(huì)你快速上手vue的登錄界面,文中通過(guò)實(shí)例代碼介紹的很詳細(xì),需要的朋友可以參考下
    2022-11-11
  • element-ui中table組件的toggleRowSelection()方法使用

    element-ui中table組件的toggleRowSelection()方法使用

    這篇文章主要介紹了element-ui中table組件的toggleRowSelection()方法使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue2.0 路由不顯示router-view的解決方法

    vue2.0 路由不顯示router-view的解決方法

    下面小編就為大家分享一篇vue2.0 路由不顯示router-view的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 用了這么久的Vue3你真的了解Proxy了嗎

    用了這么久的Vue3你真的了解Proxy了嗎

    Proxy是ES6引入的一個(gè)新特性,它允許你創(chuàng)建一個(gè)代理對(duì)象,用于攔截對(duì)目標(biāo)對(duì)象的訪問(wèn),但用了這么久的vue3,你真的懂Proxy嗎,本文就來(lái)和大家深入聊聊Proxy吧
    2023-06-06

最新評(píng)論