精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Worklight基于HTML5和JavaScript的跨平臺應用

移動開發
Worklight 是 IBM 收購的一套用于移動應用開發和基礎平臺整合的企業級解決方案。它支持多種移動平臺的本地應用開發,同時也支持基于 HTML5 和 JavaScript 的跨平臺應用。本文主要介紹 Worklight 的運行時皮膚以及如何使用該特性開發針對不同移動終端的跨平臺

隨著智能手機和平板電腦的普及,越來越多的互聯網 IT 企業把注意力集中到了移動平臺上。目前市場上主流的移動平臺有 Apple 的 iOS, Google 的 Android, 微軟的 Windows Phone, BlackBerry 以及 Nokia 的 Symbian 等。這些移動平臺的開發環境和編程語言都不盡相同。同時,一個平臺又有多個版本,例如 Android2.3 和 Android3.0 分別支持智能手機和平板電腦。正是由于這些多樣性,使得移動應用的開發存在成本高、周期長和維護困難等問題。

Worklight 是 IBM 收購的一套用于移動應用開發和基礎平臺整合的企業級解決方案。它支持多種移動平臺的本地應用開發,同時也支持基于 HTML5 和 JavaScript 的跨平臺應用。

本文主要介紹 Worklight 的 RuntimeSkin 特性以及如何使用該特性開發針對不同移動終端的跨平臺應用。

開發環境安裝與配置

Worklight 提供的是一整套移動應用的開發環境,涵蓋了從開發到集成,到管理、部署、監控行等軟件開發生命周期的各個方面。它主要由四個部分組成,Worklight Studio、 Worklight Server、Device Runtime 和 Worklight Console:

  • Worklight Studio 是基于 Eclipse 的集成開發環境,用戶可以很方便地創建、開發、部署和測試不同平臺的本地應用或者混合型應用。
  • Worklight Server 是一個基于 Tomcat 的服務器,用于部署開發好的移動應用程序。同時它還提供適配器 (Adapter) 組件來進行用戶登錄驗證、后臺數據交互、消息推送等企業級應用操作。
  • Device Runtime 是 Worklight SDK 中包含一個組件,它主要提供了可以調用移動平臺本地資源的多種接口,開發者可以使用 JavaScript API, 操作系統本地庫和第三方庫來調用這些接口,充分利用了本地應用的優點。
  • Worklight Console 可以讓用戶通過瀏覽器來監控、管理當前部署在 Worklight Server 上的應用程序和適配器組件。Worklight Console 同時還負責消息推送管理以及報表分析。

Worklight 開發環境的下載與安裝步驟可以從 developerWorks IBM Worklight 學習資源上獲得。

什么是運行時皮膚(Runtime Skin)

運行時皮膚是指 Worklight 的應用程序可以為已經創建好的手機平臺環境(Worklight Environment)添加多個皮膚,每一個皮膚是平臺環境的一個子集,所有的皮膚作為應用程序的一部分打包在安裝文件中。當應用程序運行時會根據具體 的移動設備動態地決定使用哪一個皮膚。運行時皮膚的應用場景有很多,比如不同的手機尺寸,不同的手機平臺版本,是否支持 HTML5 等等。

下面我們以一個新聞瀏覽的應用程序為例,具體介紹如何應用 Worklight 的 Runtime Skin 特性。

創建 Worklight 工程和應用程序

  1. 我們創建一個 Worklight 工程。在 Eclipse 中選擇 File->New->Worklight Project, 如圖 1 所示。
    圖 1. 創建 Worklight 工程
    圖 1. 創建 Worklight 工程
     
  2. 輸入工程名稱 Mobile News。接著我們創建一個 Worklight 應用程序,選擇 File->New->Worklight Application,如圖 2 所示。
    圖 2. 創建 Worklight 應用程序
    圖 2. 創建 Worklight 應用程序
     
  3. 在彈出的窗口中選擇***步新建的工程,然后輸入應用程序的名稱 NewsApp,如圖 3 所示。
    圖 3. 在工程中創建應用程序
    圖 3. 在工程中創建應用程序
     
  4. 創建完工程和應用程序以后,Worklight 會自動生成如下的目錄結構,如圖 4 所示。
    圖 4. 應用程序目錄結構
    圖 4. 應用程序目錄結構
     

我們看到在 apps 目錄下包含剛剛創建的應用程序 NewsApp,初始情況下每一個應用程序會有一個 common 的運行時環境,它會被不同手機平臺環境(例如 iOS, Android, BlackBerry 等)所共用。在 common 文件夾下有三個文件夾 css, images 和 js,分別存放了程序相關的 css 文件,圖片和 JavaScript 文件。NewsApp.html 是程序自動創建的主 html 文件。

在工程中引入 Dojo Mobile

在這個例子中,我們使用 Dojo Mobile 做為手機界面開發的 JavaScript 框架。Dojo Mobile 是 Dojo JavaScript 的一個 mobile 版本擴展,專門為手機移動開發提供很多豐富的控件和不同的 css 主題。

打開 NewsApp.html,在 head 中引用 dojo.js 文件,這里我們使用 CDN 的方式,如清單 1 所示。讀者也可以從 dojo 的官方網站上下載 dojo toolkit 包,拷貝到工程里,然后在 html 文件中引用 dojo.js。

清單 1. 引用 dojo.js

  1. <script type="text/javascript" 
  2.    data-dojo-config="isDebug: false, async: true, parseOnLoad: true" 
  3.    src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js">  
  4. </script>  
  1. 在 js/NewsApp.js 的 wlCommonInit() 初始化函數中添加相應的 dojo mobile 模塊,這里我們用到的是 AMD 方式,當 require 方法加載完所需的 dojo mobile 模塊以后,會調用 init 這個初始化函數,函數具體的實現放在運行時皮膚。

清單 2. 用 AMD 方式加載 dojo mobile 模塊

  1.  require([  
  2.     "dojo",  
  3. "dojox/mobile/parser",  
  4.     "dojox/mobile",  
  5.     "dojox/mobile/compat",  
  6.     ], function(dojo) {  
  7.         dojo.ready(function() {  
  8.             init();  
  9.         });  
  10.  });  

定義視圖

這個示例程序一共分為兩個視圖:***個視圖是列表視圖,展示多條新聞的標題。第二個視圖是正文視圖,顯示新聞的正文。兩個視圖的交互方式分為兩種, ***種方式是首頁顯示列表視圖,當用戶點擊某一個新聞標題后,轉到正文視圖。點擊正文視圖左上角的返回按鈕,返回到列表視圖,如圖 5 左側所示。這種方式適合小屏幕的手機。

第二種方式是把列表視圖和正文視圖顯示在同一個頁面中,如圖 5 右側所示。頁面左側是新聞列表視圖,頁面右側是正文視圖。用戶可以在列表視圖中選擇新聞標題,相應的新聞正文就會在右側顯示。這種方式適合在平板電腦這種屏幕較大的移動設備上。

圖 5. 兩種顯示方式
圖 5. 兩種顯示方式

在新建皮膚之前,我們需要把不同皮膚共用的代碼放在 common 環境中。

  1. 首先在 common 環境下新建一個 data 文件夾來存放兩個視圖的模版,分別命名為 list.html 和 detail.html.
    清單 3. 列表視圖代碼
    1. <h1 id="listHead" data-dojo-type="dojox.mobile.Heading" label="News"></h1>  
    2. <ul id="newsList" data-dojo-type="dojox.mobile.EdgeToEdgeList">  
    3.    <li data-dojo-type="dojox.mobile.ListItem" moveTo="detailView" 
    4.     label="news 1 title"></li>  
    5.    <li data-dojo-type="dojox.mobile.ListItem" moveTo="detailView"  
    6.    label="news 2 title"></li>  
    7. </ul>  

  2. 清單 4. 正文視圖代碼
    1. <h1 id="detailHead" data-dojo-type="dojox.mobile.Heading" label="News title"></h1>  
    2. <div data-dojo-type="dojox.mobile.RoundRect" data-dojo-props='shadow:true'>  
    3.    <p>This is news body</p>  
    4. </div>  
  3. 在 common/js 中添加通用的 javscript 方法。
    清單 5. loadView 方法
    1. function loadView(id, url) {  
    2.    var view = new dojox.mobile.ScrollableView({  
    3.        id: id,  
    4.        selected: true  
    5.    });  
    6.    var contentPane = new dojox.mobile.ContentPane({  
    7.        href: url  
    8.    });  
    9.    view.addChild(contentPane);  
    10.    return view;  
    11. }  

loadView 方法主要工作是把列表視圖(list view)和正文視圖(detail view)分別加載到一個 ScrollableView 當中。接下來我們開始創建兩個不同的皮膚以及皮膚相關的代碼。

創建運行時皮膚

首先我們需要新建一個 Worklight 環境,右鍵 NewsApp 工程選擇 New ->Worklight Environment, 如圖 6 所示。

圖 6. 創建 Worklight 環境
圖 6. 創建 Worklight 環境

Worklight 提供了多種手機平臺環境,包括:iPhone/iPad, Android, BlackBerry 和 Windows Phone 等。在這里我們選擇 Android phones and tablets,如圖 7 所示。

圖 7. 添加 Android phone and tablet 環境
圖 7. 添加 Android phone and tablet 環境

接下來我們創建兩套運行時皮膚,一套針對 Android 手機,另外一套針對 Android 平板電腦。

右鍵 NewsApp 項目,選擇 New -> Worklight Application Skin, 然后選擇 Skin 對用的手機環境為之前創建的 Android phones and tablets, 輸入 skin 的名字 android.phone, 如圖 8 所示。

圖 8. 添加 Android Phone 皮膚
圖 8. 添加 Android Phone 皮膚

同樣地,我們創建另外一個皮膚,名稱為 android.tablet. Worklight 會自動地將創建完的皮膚在 application-descriptor.xml 中注冊,如清單 6 所示。這里需要注意一點,當我們刪除某一個 skin 的時候,需要在 application descriptor 中手動刪除該 skin 標簽。

清單 6. application-descriptor.xml 中注冊的 skin 信息

            
  1. <android version="1.0">  
  2.    <skins>  
  3.        <skin name="default">  
  4.            <folder name="common"/>  
  5.            <folder name="android"/>  
  6.    </skin>  
  7.    <skin name="android.phone">  
  8.            <folder name="common"/>  
  9.            <folder name="android"/>  
  10.            <folder name="android.phone"/>  
  11.        </skin>  
  12.        <skin name="android.tablet">  
  13.            <folder name="common"/>  
  14.            <folder name="android"/>  
  15.            <folder name="android.tablet"/>  
  16.        </skin>  
  17. </skins>  
  18. </android>  

每一個皮膚包含了各自的 css 文件,image 圖片和 javascript 方法。我們需要為兩個皮膚創建不同的初始化函數,把列表視圖和正文視圖按照特定的方式加載到主 html 文件中。

  1. 在 android.phone 的 js 文件夾下新建一個與 common/js 下同名的 js 文件:NewsApp.js,在這個文件里添加初始化函數。
    清單 7. phone 皮膚的初始化函數
    1. function init() {  
    2.    var listView = loadView("listView""data/list.html");  
    3.    dojo.place(listView.domNode, dojo.body());  
    4.    var detailView = loadView("detailView""data/detail.html");  
    5.    dojo.place(detailView.domNode, dojo.body());  
    6. }  

  2. 初始化函數把兩個視圖按順序添加到主頁面中,當程序啟動時,顯示***個頁面,也就是列表視圖。當用戶點擊列表視圖中的某一項,就會轉到正文視圖。

  3. 同樣地,我們在 android.tablet 的 js 文件夾下也新建一個 NewsApp.js,它的初始化函數如下:
    清單 8. tablet 皮膚的初始化函數
    1. function init() {  
    2.     var fixedSplitter = new dojox.mobile.FixedSplitter({  
    3.     orientation: "H" 
    4.     }, dojo.create("div"null, dojo.body(), 'first'));  
    5.     fixedSplitter.startup();  
    6.     var listView = loadView("listView""data/list.html");  
    7.     var leftPane = new dojox.mobile.ContentPane({  
    8.     id: "leftPane",  
    9.     content: listView.domNode  
    10.     });  
    11.     fixedSplitter.addChild(leftPane);  
    12.     var detailView = loadView("detailView""data/detail.html");  
    13.     var rightPane = new dojox.mobile.ContentPane({  
    14.         id: "rightPane",  
    15.         content: detailView.domNode  
    16.     });  
    17.     fixedSplitter.addChild(rightPane);  
    18.  }  

在這個初始化函數中,我們用到了 FixedSplitter 這個 dojo mobile 控件,它可以把 mobile 頁面分為多個區域,每個區域可以加載不同的視圖。這里我們把整個頁面分成左右兩塊 leftPane 和 rightPane,分別加載列表視圖和正文視圖。

當我們完成不同皮膚的初始化函數之后,需要在 skinLoader.js 的 getSkinName 方法中添加根據移動設備屏幕大小動態選擇皮膚的代碼。如圖 9 所示。

圖 9. skinLoader.js
圖 9. skinLoader.js

清單 9. getSkinName 方法

  1. function getSkinName() {  
  2.    var skinName = "android.phone";  
  3.    var screenHeight = screen.height;  
  4.    var screenWidth = screen.width;  
  5.    if (screenHeight >= 1000 || screenWidth >= 1000) {  
  6.        skinName = "android.tablet";  
  7.    }  
  8.    return skinName;  
  9. }  

這個方法根據屏幕的大小來選擇應用哪一個皮膚。注意 skinName 的值要跟創建的皮膚名稱保持一致。

皮膚應用效果

我們把 NewsApp 工程部署到 Worklight Server 上,然后分別在不同手機尺寸的模擬器上運行。圖 10 所示的是運行在小屏幕手機上的效果。圖 11 所示的是運行在大屏幕平板電腦上的效果。

圖 10. 手機顯示效果
圖 10. 手機顯示效果

圖 11. 平板電腦顯示效果
圖 11. 平板電腦顯示效果

結束語

運行時皮膚是 Worklight 的一個重要特性,它可以方便地在同一個應用程序中添加多個皮膚外觀,在程序運行時動態地選擇適合移動終端設備的皮膚。本文從一個具體的實例出發,幫助讀者了解運行時皮膚的具體使用方法。

責任編輯:佚名 來源: 風信網
相關推薦

2016-05-27 15:44:12

H5LeanCloudWex5

2012-06-14 09:57:12

跨平臺工具IBMWorklight

2011-05-25 09:34:30

HTML5cssjavascript

2012-05-03 14:29:53

HTML5

2013-01-25 16:54:42

富士通HTML5企業級

2011-07-05 14:59:47

PhoneGapHTML 5

2012-12-03 13:49:01

IBMdW

2012-02-07 08:58:21

IBM移動中間件收購

2012-09-19 14:40:35

Worklight

2011-05-11 12:59:18

HTML5

2011-01-27 13:08:57

HTML5JavascriptWeb

2011-08-01 16:43:51

ibmdwHTML5Dojo

2014-07-22 10:58:33

HTML5jQuery

2015-03-05 09:54:28

效果驚艷HTML5應用和源碼

2010-07-28 08:41:17

HTML5Web移動應

2011-05-11 13:58:19

HTML5

2014-04-17 09:54:47

HTML5JavaScript

2013-08-30 10:02:48

2012-09-04 10:15:00

IBMdw

2014-09-12 10:30:51

HTML5熱力圖
點贊
收藏

51CTO技術棧公眾號

激情小说亚洲一区| 加勒比久久综合| 香蕉成人伊视频在线观看| 欧美高清视频一区| 91久久久久久久久久久久| 欧美激情精品久久久六区热门| 亚洲国产精品一区二区三区| 亚洲三级视频网站| 色黄网站在线观看| 国产亲近乱来精品视频| 成人在线视频网址| 中文有码在线播放| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲国产毛片完整版| 99热这里只有精品在线播放| 国产嫩草在线视频| 综合中文字幕亚洲| 欧美日韩中文国产一区发布| 国产超碰人人模人人爽人人添| 先锋a资源在线看亚洲| 伦伦影院午夜日韩欧美限制| 国产精品亚洲无码| 成人av地址| 4438x成人网最大色成网站| 妺妺窝人体色777777| 男女啪啪在线观看| 欧美激情一区二区三区四区| 国产伦一区二区三区色一情| 国产手机精品视频| 免费高清视频精品| 国产成人aa精品一区在线播放| 久久婷婷综合国产| 亚洲九九在线| 色妞在线综合亚洲欧美| 免费毛片视频网站| 欧美激情网址| 亚洲成人网久久久| 日本中文字幕有码| 日韩中文字幕视频网| 777午夜精品视频在线播放| 天天操天天爱天天爽| 偷拍精品精品一区二区三区| 欧美日韩另类视频| 免费高清一区二区三区| 亚洲男同gay网站| 亚洲理论在线观看| 韩国无码av片在线观看网站| 182tv在线播放| 玉足女爽爽91| 国产肉体ⅹxxx137大胆| 2021国产在线| 亚洲一区影音先锋| 日本手机在线视频| 97蜜桃久久| 午夜精品福利一区二区三区av | 麻豆久久久9性大片| 国产成人无码www免费视频播放| 国产精品一色哟哟哟| 亚洲精品女av网站| 亚洲精品久久久久久久久久久久久久| 国产一本一道久久香蕉| 91精品天堂| 免费的黄色av| 久久久.com| 亚洲欧美日韩国产yyy| 麻豆免费在线观看| 一区二区欧美精品| 黄页网站大全在线观看| 在线男人天堂| 欧美四级电影在线观看| 午夜激情av在线| 国产精品一区二区三区www| 日韩久久免费av| 亚洲国产第一区| 国产欧美日韩视频在线| www.日韩欧美| 久久精品国产亚洲av高清色欲| 国产一区二区精品| 国产精品久久久久久久久免费| 影音先锋黄色网址| 高清不卡在线观看av| 久久99精品久久久久久三级| 中文字幕在线观看日本| 亚洲女同ⅹxx女同tv| 青青青国产在线观看| 亚洲一区二区三区四区| 91麻豆精品国产91| 这里只有精品在线观看视频 | 激情综合婷婷| 亚洲福利视频网| 精品无码人妻一区二区免费蜜桃| 五月天久久久| 国产91成人video| 一本一道人人妻人人妻αv| 粉嫩aⅴ一区二区三区四区| 牛人盗摄一区二区三区视频| 国产黄a三级三级三级av在线看| 午夜av电影一区| 狠狠干狠狠操视频| 色婷婷精品视频| 久久影视免费观看| 国产一级淫片a视频免费观看| 久久99精品国产麻豆不卡| 国产伦精品一区二区三区免费视频 | 久久综合给合久久狠狠狠97色69| 尤物国产精品| 都市激情综合| 日韩欧美国产成人一区二区| 日本成人午夜影院| 国产精品成人一区二区网站软件| 热久久免费国产视频| 亚洲国产精品二区| 中文字幕中文在线不卡住| 3d动漫一区二区三区| 成人在线视频www| 一本色道久久88亚洲综合88| 日本少妇全体裸体洗澡| 国产一区视频在线看| 欧美日韩综合久久| 国产在线精彩视频| 日韩一级二级三级| 亚洲不卡的av| 久久久久久一区二区| 精品亚洲一区二区三区四区五区高| 国产黄色在线网站| 欧美日韩日日夜夜| 91成人在线免费视频| 一区二区三区国产在线| 国产精品一 二 三| 最新黄网在线观看| 在线综合亚洲欧美在线视频| 精品人体无码一区二区三区| 视频一区中文字幕国产| 久久免费99精品久久久久久| 麻豆视频在线观看免费网站黄| 日韩欧美国产综合在线一区二区三区| 亚洲区一区二区三| 青青草成人在线观看| 久久影院理伦片| 天堂在线中文网官网| 亚洲电影免费观看高清| 久久中文字幕无码| 国产成a人亚洲精品| 欧美性受xxxx黑人猛交88| 成人免费一区| 少妇高潮久久77777| 性色av一区二区三区四区| 国产亚洲一本大道中文在线| 99视频免费播放| 欧美日韩在线二区| 国产精品视频永久免费播放| 成人性生交大片免费看午夜 | 国产午夜一区| 国产精品国产亚洲伊人久久| 国产精品ⅴa有声小说| 日本福利一区二区| 国产精品一区二区亚洲| 精品一区在线看| 中文字幕一区二区三区四区五区| 亚洲伦理网站| 欧美激情图片区| 日本久久一级片| 欧美午夜激情小视频| 免费人成又黄又爽又色| 免费av网站大全久久| 久久精品国产精品亚洲精品色| 97精品资源在线观看| 国内精品偷拍视频| 青青草国产精品亚洲专区无| 亚洲欧美久久234| 免费看日产一区二区三区 | av片在线观看免费| 欧美精品一区在线观看| av大全在线观看| 国产欧美日韩视频一区二区| 亚洲精品手机在线观看| 国内精品嫩模av私拍在线观看| 久久99精品久久久水蜜桃| 制服诱惑亚洲| 日韩亚洲欧美中文高清在线| 精品国产亚洲AV| 欧美日韩免费在线观看| 综合 欧美 亚洲日本| 国产精品1区2区3区| 777777av| 手机在线一区二区三区| 国产精品久久久久免费| 欧洲一级精品| 久久国产精品首页| 天天干天天色天天| 欧美日韩国产另类不卡| 日本少妇全体裸体洗澡| 国产精品拍天天在线| 中文字幕99页| 日本特黄久久久高潮| 97超碰在线视| 精品久久一区| 国产精品免费视频一区二区| 精品网站在线| 97国产成人精品视频| 91.xxx.高清在线| 日韩精品久久久久久久玫瑰园| 国产又粗又大又爽视频| 欧美日韩国产影院| 青娱乐国产在线视频| 国产午夜精品一区二区| 东京热av一区| 国产乱人伦偷精品视频不卡 | 国产精品亚洲午夜一区二区三区| 漂亮人妻被中出中文字幕| 综合激情一区| 在线看视频不卡| 久久99视频| 国产精品一码二码三码在线| 57pao成人永久免费| 国产精品第二页| 日韩伦理在线| 高清一区二区三区四区五区| 国产高清一区二区三区视频 | 国产嫩草在线视频| 久久这里只有精品视频首页| 国产成人天天5g影院在线观看| 亚洲护士老师的毛茸茸最新章节| av中文字幕在线免费观看| 欧美三级在线视频| 久操视频在线免费观看| 午夜精品久久一牛影视| 久久精品99国产精| 亚洲精品久久久久久国产精华液| 黄色一级片一级片| 欧美激情综合五月色丁香| 日本少妇色视频| 99国产麻豆精品| 亚洲男女在线观看| 成人精品视频一区二区三区| 性色av浪潮av| 国产精品一二三四| 亚洲国产综合av| 国产一区二区三区综合| 亚洲最大天堂网| 美女一区二区久久| 五月天激情视频在线观看| 日本欧美久久久久免费播放网| 日韩 欧美 高清| 水蜜桃久久夜色精品一区的特点| 欧美亚洲另类色图| 国产精品久久久免费| 成人在线免费观看av| 国产一区二区你懂的| 337p粉嫩大胆噜噜噜鲁| 新67194成人永久网站| 免费在线激情视频| 乱码第一页成人| 亚洲不卡视频在线| 久久99精品一区二区三区三区| 天天色天天综合网| 国产自偷自偷免费一区| 免费在线欧美视频| 亚洲色图偷拍视频| 国产精品一级片在线观看| 中文字幕99页| 久久久久久夜精品精品免费| 毛片aaaaaa| 亚洲视频一区二区在线| 国产亚洲欧美精品久久久久久| 亚洲一二三区视频在线观看| 国产成人精品片| 在线欧美日韩国产| 国产农村妇女毛片精品久久| 亚洲精品一区二区三区四区高清| 亚洲色图欧美视频| 国产一区二区三区日韩欧美| 黄色av电影在线播放| 久久噜噜噜精品国产亚洲综合| 亚洲精品mv| 国产在线观看精品| 国产精品17p| 日韩精品久久一区二区三区| 先锋资源久久| 日本少妇高潮喷水视频| 日韩av电影天堂| 国产一级二级av| 久久婷婷国产综合精品青草| 国产麻豆视频在线观看| 亚洲成人精品一区| 亚洲图片在线播放| 亚洲成色777777在线观看影院 | 欧美精品制服第一页| 性爽视频在线| 亚洲在线免费看| 男男gay无套免费视频欧美| 一本—道久久a久久精品蜜桃| 国产精品美女久久久浪潮软件| 欧美性受xxxxxx黑人xyx性爽| 成人av网在线| 久久国产美女视频| 欧美这里有精品| 三级小视频在线观看| 日韩小视频网址| 男人皇宫亚洲男人2020| 亚洲一区中文字幕在线观看| 欧美精品乱码| 欧美日本视频在线观看| 国产一区美女在线| 无码一区二区三区在线| 亚洲成人在线观看视频| 国产精品久久久久久久久久久久久久久久 | 98精品国产自产在线观看| 亚洲精品大片| 欧美亚州在线观看| 亚洲大片av| 91精品国产三级| 国产精品久久久久9999吃药| av黄色在线播放| 亚洲第一二三四五区| av片哪里在线观看| 成人疯狂猛交xxx| 欧美肉体xxxx裸体137大胆| jizzjizz国产精品喷水| 粉嫩av亚洲一区二区图片| 天天看天天摸天天操| 欧美影院午夜播放| 欧美日韩国产中文字幕在线| 国内精品一区二区三区| 亚洲成人黄色| av电影一区二区三区| 另类小说视频一区二区| 韩国三级hd中文字幕| 欧美丝袜一区二区三区| 欧美孕妇孕交| 欧美在线免费视频| 思热99re视热频这里只精品| 777精品久无码人妻蜜桃| 成人精品免费视频| 日韩av男人天堂| 日韩不卡在线观看| 性感女国产在线| 欧美日本韩国在线| 蜜桃视频一区| av永久免费观看| 欧美在线|欧美| 欧美尤物美女在线| 国产欧美日韩精品专区| 91免费精品| 日本一本在线视频| 一区二区免费视频| 欧美视频久久久| 欧美在线精品免播放器视频| 一道在线中文一区二区三区| 久久久久久久久久久久久久国产| 久久久久久久综合日本| 女人十八岁毛片| 国产一区二区三区18 | 国产成人精品日本亚洲11| 韩国在线一区| 毛茸茸多毛bbb毛多视频| 欧美性色xo影院| www.黄在线观看| 亚洲影视九九影院在线观看| 好吊视频一区二区三区四区| 少妇户外露出[11p]| 在线精品视频免费播放| 欧美a在线看| 国产精品区一区二区三含羞草| 99视频+国产日韩欧美| 免费福利视频网站| 欧美一区二区三区公司| 国产夫妻在线| 日韩欧美一区二区三区久久婷婷| 麻豆久久一区二区| 免费在线观看日韩| 日韩国产精品视频| xxxxx.日韩| 日韩精品综合在线| 国产午夜久久久久| 午夜精品久久久久久久96蜜桃| 午夜精品一区二区三区在线视| 精品国产一区一区二区三亚瑟| 三年中文在线观看免费大全中国| 亚洲国产精品尤物yw在线观看| 久久久久久久久亚洲精品| 成人黄色av网站| 亚洲激情一区| 黄色一级片一级片| 亚洲成人网av| 亚洲成人毛片| 欧美色图色综合| 中文字幕综合网| 十九岁完整版在线观看好看云免费| 国产精品99久久久久久人| 一区二区三区在线| 白白色免费视频| 日韩欧美在线一区二区三区| 欧美无毛视频| 欧美 日韩 国产精品| 国产精品毛片久久久久久久| 婷婷五月综合久久中文字幕| 国产免费一区二区三区在线观看| 亚洲成人在线| 91嫩草丨国产丨精品|