一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

商城系統 注冊

愛奇藝視頻小程序系統功能開發

2018-06-21|HiShop
導讀:各大視頻網站也開始加入了小程序的暗戰,在線視頻小程序的無需下載,從微信端就可以進入觀看視頻。下面以愛奇藝視頻小程序為大家解讀視頻小程序的開發案例。...

各大視頻網站也開始加入了小程序的暗戰,在線視頻小程序的無需下載,從微信端就可以進入觀看視頻。下面以愛奇藝視頻小程序為大家解讀視頻小程序的開發案例。

愛奇藝視頻小程序系統功能開發

項目功能

  • 首頁界面
  • 任意點擊視頻縮略圖即可跳轉到相關頁面
  • 熱點tab的下拉,上滑加載的基礎功能
  • 搜索匹配電影名

這是總的效果

愛奇藝視頻小程序系統功能開發

詳細介紹

1.首頁的輪播圖

這里使用的是小程序的滑塊視圖容器swiper組件,用來做輪播圖那叫一個簡單方便

使用過愛奇藝小程序的朋友會發現首頁簡單介紹視頻信息的輪播圖是布局在頁面中間并且每一張圖片都不相連的,滑動時很是簡潔大方。一開始我是簡單的使用,將swiper設置了寬高并使之居中,就產生了下面的結果:只有中間的內容在滑動,并不是想要的效果

那看來即使swiper組件看起來簡單也要好好研究一番哪,看了文檔之后我發現swiper組件其實是swiper-item在滑動,并且它僅可放置在swiper組件中,寬高自動設置為100%。既然這樣,那就去設置swiper-item的寬度好了

swiper{
    width:100%;
}
swiper-item{
    width:80%;
}

emmm好像不太行,似乎每一個swiper-item總是那么分不開啊,那就去設置里面的內容的樣式吧

.info-box{
    width: 100%;
    margin: 0 60rpx;
}

總算這樣才做到了想要的效果。撒花~

2.宣傳圖跟著輪播圖改變

在這里是使用了swiperbindchange方法。只要滑動了就會觸發,并且有一個current代表當時滑動到第幾個。這樣想來,swiper好像一個數組,里面包含著很多的swiper-item

所以我們可以在js部分通過獲取到這個current值,在對應的圖片資源數組中遍歷并取出地址,換成宣傳圖的地址即可

//index.js
        moviepicChange(e) {
        const imgsUrlList = this.data.imgsUrlList; //圖片資源
        let bigImg = this.data.bigImg;
        let video_id = this.data.video_id;

        for (let i = 0; i < imgsUrlList.length; i++) {
            if (i == e.detail.current) { //如果current值與圖片數組索引值匹配到了,則
                bigImg = imgsUrlList[i].thumbnail; //換掉宣傳圖片地址
                video_id = imgsUrlList[i].video_id;
            }
        }
        this.setData({
            bigImg: bigImg,
            video_id
        })
    }

3.任意點擊視頻縮略圖即可跳轉到相關頁面

在這個功能里頭,數據處理是我碰到的一大難題了,因為沒有后端,我就想試圖模擬一下點擊一個圖片就發送視頻id,并由后端返回響應數據的操作,大致思路就是就是通過了一個“中間站”去處理。emmm 可能有一點笨笨的= =。

  1. 首先準備好來自Easy-Mock的數據接口

  2. 然后在視頻縮略圖上綁定一下事件,用data-傳遞想要用于查詢的參數

     <swiper-item data-vid="{{item.video_id}}" data-title="{{item.title}}" bindtap="openDetail"></swiper-item>
    
  3. 視頻詳情頁面獲取到傳過來的id之后就可以發起請求,因為wx.request是個異步操作,需要一點時間,此處我對wx.request進行了封裝,返回一個promise的辦法就可以把異步操作變成了同步的啦ヾ(?°∇°?)??

     //video-detail.js
     requestVideo: function(num = 0) {
     util.request({ //封裝的util.request方法
             url: `https://www.easy-mock.com/mock/5b0c37bed0e51c310ce24ab0/iqiyi/media#!method=get`,  //請求地址
             data: { // 請求參數
                 id: this.data.video_id,
                 tag: 'dramas',
                 langs: 'en'
             }
         })
         .then(res => { //res是返回的數據
             //對數據進行處理,之后便可通過數據綁定在頁面顯示響應內容
         })
     }
    

創建一個util工具文件夾,用于提供工具方法。這里就是我模擬后端傳回響應數據的地方,先在util.js內獲取所有的數據,再根據視頻詳情頁面發送過來的參數對已經獲得的數據進行處理,通過返回promise.then的操作在視頻詳情頁面獲得由util.js處理之后的數據。

//util.js    
let util = {
request(opt) {
    let options = Object.assign({},opt); //花括號是目標對象,后面的opt是源對象。進行對象合并:將源對象里面的屬性添加到目標對象中去,若兩者的屬性名有沖突,后面的將會覆蓋前面的
    let { url, data} = options; //結構成這兩個變量

    return new Promise((resolve, reject) => { //向請求發起頁面返回一個promise
        wx.request({ //發送請求
            url,
            data,
            success(res) { //請求到數據之后對數據進行處理
                let returnRes = [];
                if (data.hasOwnProperty('tag')) { 
                    let arr = res.data[data.tag];

                    if (data.hasOwnProperty('id')) { //如果請求參數中有tag,id則進行以下匹配
                        console.log(arr)
                        for (let i in arr) {
                            if (arr[i].video_id === data.id) { 
                                returnRes = arr[i]; //得到跟點擊的縮略圖相對應的視頻資源
                            }
                        }
                        resolve(returnRes)
                        return;
                    }
                    returnRes = arr;
                }
                resolve(returnRes)
            },
            fail(err) {
                reject(err)
            }
        })
    })
}
}

4.關鍵字搜索

  1. 首先是在搜索頁面獲取到關鍵字,之后作為請求參數使用上述封裝好util.request進行請求與數據處理

  2. 在util.js內獲取到所有數據之后,在眾多數據中通過RegExpObject.test(string)實現關鍵字的遍歷匹配

     //util.js
     if (data.hasOwnProperty('key')) { //如果請求參數是key
     const media = res.data;
     for (let i in media) { //遍歷匹配電影名
         for (let j in media[i]) {
             var re = new RegExp(data.key);
             if (re.test(media[i][j].title)) {
                 returnRes.push(media[i][j]); //得到匹配好的電影
             }
         }
     }
     resolve(returnRes)
     return;
     }
     resolve(returnRes)
    
  3. 搜索頁面使用util.request得到數據之后,搜索結果列表一項一項就可以顯示出來。重點是(敲黑板),一般來說點擊哪一項,在搜索結果頁面那一項就會排在最上面,那我就想要不然再建一個由點擊的的那一項作為第一項的查詢結果數組,將它存在本地然后在下一個頁面取出并顯示!

     //search.js
     clickResult: function(e) {
     let index = e.currentTarget.dataset.num; //點擊了第幾項
     let searchVal = this.data.searchVal; //關鍵詞
     let StorageResult = []; // 用于存在本地的數組
    
     let temp = [];
     const result = this.data.result;
    
     for (let i = 0; i < result.length; i++) {
         if (i == index) {
             temp = result.splice(i, 1); //取出點擊的那一項
         }
     }
     StorageResult = temp;
     for (let i in result) {
         StorageResult = [...StorageResult, result[i]] //將點擊的那一項作為數組首位,其他搜索結果再依次放入
     }
     wx.setStorage({ //在本地緩存搜索結果
         key: 'searchResult',
         data: StorageResult,
         success: function(res) {
             wx.navigateTo({
                 url: `search-result/search-result?key=${searchVal}` //跳轉到下一個頁面
             })
         }
     })
     }
    
  4. 另外,搜索結果會順帶把集數羅列出來,那就需要實現點哪集就在視頻詳情頁定位到哪集的功能

  • 先在wxml里通過data-把id、集數、標題傳到下一個頁面,在onload里頭獲取集數

      //video-detail.js
      onLoad: function(option) {
      this.setData({
          video_id: option.id,
          mediaList: null,
      })
      wx.setNavigationBarTitle({ //設置導航條名稱
          title: option.title
      })
      if (option.hasOwnProperty('num')) { //調用請求資源方法傳入集數
          this.requestVideo(option.num);
      } else {
          this.requestVideo();
      }
      }
    
  • 請求所有視頻資源之后并遍歷,把當前播放地址設為選中的那集

      requestVideo: function(num = 0) { //沒有選擇集數,則集數默認是0
      util.request({
             ...(略)
          })
          .then(res => {
              this.setData({
                      mediaList: res,
                      isLoading: false,
                      playerUrl: res.drama_num[num].video_url //修改播放地址
                  })
              this.pickNum(num); //改變集數選擇狀態
          })
      }
    
  • 用于改變集數選擇狀態

      pickNum: function(num) {
      for (let i of mediaList.drama_num) {
          i.selected = parseInt(i.drama_id) === parseInt(num) + 1 //如果選擇的集數與視頻資源的id一樣就改變該集的選中狀態
          if (i.selected) {
              playerUrl = i.video_url
          }
      }
      this.setData({
              mediaList,
              playerUrl
          })
      }
    

 

電話咨詢 預約演示 0元開店
主站蜘蛛池模板: 中文字幕无码免费久久91|wwwwww在线观看|白天操夜夜操|92福利视频1000免费|69精品丰满人妻无码视频=a片|97在线中文字幕免费公开视频 | 亚洲精品无码成人=a片|国产美女口爆吞精普通话|国产精品国产三级国产专播i12|91精品国产一区自在线拍|日韩特级|成人在线免费观看小视频 | 粉嫩少妇内射浓精VIDEOS|免费nb=a在线观看|素人啪啪|俺也去久久|亚洲=av=av天堂=av在线网毛片|国产蜜月一区二区三区在线看 | 精品国产乱码久久久久乱码|最新在线观看=av|久久亚洲国产精品五月天|337P日本欧洲亚洲大胆精筑|性动态图=aV无码专区|免费观看又色又爽又湿的视频 | 日韩精品免费一区|日本人与黑人做爰视频网站|国产免费黄视频在线观看|亚洲男人天堂一区|69视频在线免费观看|视频三区二区一区 | 久久精品国产清高在天天线|天堂在线观看www|毛片=av在线免费观看|精品国产欧美一区二区五十路|老熟女草BX×|人妻慢慢放弃抵抗开始迎合 | 国产精品大全|韩国精品视频一区二区在线播放|啦啦啦www日本高清免费观看|大柠檬导航香蕉导航巨人导航|中国黄色一级|国产成人一卡2卡3卡4卡 | 麻豆精品蜜桃|黄网wwwccc|色自拍偷拍|久久亚洲精品无码网站|国产成人免费视频在线网站2|久久久老熟女一区二区三区91 | 成年免费观看黄页网站|亚洲毛片免费在线观看|欧美视频一区二区在线|欧美人精品XO|WWW夜片内射视频在观看视频|久久影院免费观看 | 激情欧美一区二区三区免费看|亚洲青青草|国产精品免费久久久久影视|日本亚洲欧洲免费无码|国产精品XXX大片免费观看|国产一级片网 | 日韩美女啪啪|911久久|国产男女性潮高清免费网站|亚洲国产精品精华液=ab|国产精品视频自拍|毛片在线观看视频 | 性夜夜春夜夜爽=a=a片=a|欧美激情在线观看视频免费的|女人16一级毛片|日韩精品视频在线观看一区二区|欧美亚洲国产成人|hhh在线观看 | 超碰在线进入|一级全黄少妇免费录像片|欧美大成色WWW永久网站婷|免费看=a=a=a=a=a级淫片涩爱=av|亚洲=av成人一区二区三区在线观看|99一级片 | 狂野=aV人人澡人人添|天天干夜夜擦|两个人的www免费高清视频|永久免费看mv网站入口亚洲|久久一区二区三区四区|亚洲男人网 | 强乱中文字幕=av一区乱码|1204国产成人精品视频|精品无码国产一区二区三区=aV|亚洲国产精品一区二区成人片不卡|99久久无码一区人妻=a片竹菊|无码中文字幕=av免费放 | h黄视频在线观看|日韩精品=a=a=a|高h喷水荡肉爽文np肉色学男男|99精品中文字幕|C=aOPORN成人免费公开|久热久爱 | 亚洲欧洲国产视频|麻豆视频xxx|日本在线观看一区|亚洲成=aV人片无码不卡播放器|麻豆性生活视频|欧美视频一区二区三区四区 日韩网站中文字幕|国产精品入口在线观看|少妇高潮喷水久久久影院|丰满爆乳无码一区二区三区|一区二区日本在线|婷婷777 | 日韩精品理论|国产在线一区观看|特级毛片www|99视频这里只有精品视频|久久96国产精品久久久|这里只有精品首页 | 五月婷六月婷婷俺也去|一区二区三区免费|亚瑟国产精品久久|成人无码h动漫在线网站免费|在线视频色在线|XXXX日本熟妇HD | 亚洲国产一区二区三区在线播放|99热精品国产|6080yyy午夜理论片在线观看|久久=a=a=a|亚洲国产字幕|9色在线视频网站 | 国产精品爽爽=aV在线观看|国产蝌蚪视频在线观看|超碰伊人|国产二区不卡|亚洲高清欧美日韩一区二区三区|无码成人中文字幕不卡 | 97porm国内自拍视频|午夜精品一区二区三区在线播放|久久免费手机视频|人妻体体内射精一区二区|一级片=a|日本亚洲中文在线 | 1000部爽爽视频免费|亚欧乱色国产精品免费视频|无人在线视频观看免费|68日本xxxxxxxxx|bbbbbbbbb免费毛片视频|激情综合丁香 | 欧美色欧美亚洲日韩在线播放|99久久久久99国产免费=aV|午夜免费片|日韩一区二区三区久久|婷婷色色狠狠爱|69=av在线观看 | 欧美人与动人物牲交|国产精品一区hongkongdoll|97国产爽爽爽久久久|久久69国产一区二区蜜臀|成人免费在线视频网址|久久久久国产精品一区二区 | 国产在线短视频|最近免费中文字幕mv免费高清|四虎国产精品一区二区|毛片韩国|99re6这里只有精品视频在线观看|青春草在线 | 亚洲=aV综合=a国产=aV中文|亚洲涩88|久久99精品久久久久久狂牛|无遮挡h肉动漫在线观看|国产亚洲棕合欧美视频|中文字幕在线观 | 天天射夜夜骑|日韩视频黄色|亚洲国产精品一区二区成人片国内|#NAME?|一二三区在线免费观看|国产九九在线视频 | 超碰在线进入|一级全黄少妇免费录像片|欧美大成色WWW永久网站婷|免费看=a=a=a=a=a级淫片涩爱=av|亚洲=av成人一区二区三区在线观看|99一级片 | 99热国内精品永久免费观看|国产欧美高清在线观看|性一交一乱一交=a片|99视频99|国产精品成=av人在线视午夜片|久久网一区 | 另类综合视频|成人网在线观看|亚洲=a级|制服丝袜成人动漫|国产亚洲欧洲一区二区三区|99久热re在线精品99re8热视频 | 欧美性高清bbbbbbxxxxx|一级毛片免费观看|亚洲国产日韩=a在线欧观看美|日韩欧美特一级大黄作=a毛片免费|影音先锋无码=aⅴ男人资源站|欧美粗大猛烈老熟妇 | 成年人天堂com|亚洲无线看|97成人啪啪网|国产精品无码一二区免费播放|亚洲精品国产福利一二区|农村乱人伦一区二区 | 好男人日本社区www|国产精品乱码一区二三区小蝌蚪|欧亚精品一区|国产欧美在线免费观看|我爱草逼网|乱码专区一卡二卡国色天香 | 宅男噜噜噜66国产在线观看|色姑娘综合|99久久久国产精品日本久久区一|亚洲成人自拍网|国产亚洲精品第一综合另类|精品亚洲一 | 男女做=aj视频免费的网站|国产在线观看=av|亚洲国产精品嫩草影院|欧美久久激情|国产网站色|岛国视频在线免费观看 | 大地在线视频免费观看高清视频大全|蜜桃色=av|大陆毛片|青青久操视频|国产精品伊人久久|久久国产综合 | 模特写真福利内部视频|性高朝久久久久久久3小时|天天插夜夜爽|亚州综合视频|日韩免费一区二区三区|九九热线有精品视频99 | 黄色一级大片视频|国产精品55夜色66夜色|中文字幕激情|欧美精品久久久久=a|狠狠狠=av|超级乱淫片67194免费看 | 中文字幕在线观看成人|日韩乱码人妻无码中文字幕久久|午夜毛片丰满熟女导航|天下第一社区视频在线观看|国内=a∨免费播放|久久好色 | 天堂中文在线看|亚洲国产精品国自产拍=aV|好看的欧美熟妇www在线|久久国产亚洲欧美久久|四虎精品成人免费视频|曰本久久久 搡女人真爽免费视频网站波兰美女|蜜臀99|多男一女一级淫片免费播放口|日本精品不卡|特级毛片=a级毛片免费观看R|免费成人精品视频 |