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

詳解為QT Webkit編寫插件案例實現

移動開發
為QT Webkit編寫插件案例實現是本文要介紹的內容,主要是來了解QT Webki中的插件問題,為了允許的QWebView加載插件,必須使能QWebView的Javascript和Plugins屬性。

QT Webkit編寫插件案例實現是本文要介紹的內容,主要是來了解QT Webkit中的插件問題,為了允許的QWebView加載插件,必須使能QWebView的Javascript和Plugins屬性,使能方法為:

  1. QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled,true);  
  2. QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled,true); 

或者

//這里假設webView是QWebView的對象:

  1. QWebView *webView;webView->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);  
  2. webView->settings()->setAttribute(QWebSettings::PluginsEnabled,true); 

然后為QWebView添加插件工廠,這個插件工廠中包含了QWebView中所有可用的插件庫,當然這個插件工廠中包含哪些插件得由我們程序員來定。添加插件工廠的方法為:
//為QWebView添加插件工廠,即告訴QWebView有哪些插件可用。//這里的 WebkitPluginFactory 是Qt的虛類 QWebPluginFactory 的實現類,后面會講到這個類。

  1. webView->page()->setPluginFactory(new WebkitPluginFactory(this)); 

下面我們就來實現這個插件工廠類WebkitPluginFactory, 主要需要實現的就是 QWebPluginFactory  中的兩個虛函數:

  1. virtual QObject *create(  
  2.   const QString &mimeType,   
  3.   const QUrl &url,         
  4.   const QStringList &argumentNames,  
  5.   const QStringList & argumentValues )  
  6.   const = 0;virtual QList<Plugin>      
  7.   plugins () const = 0;  
  8.     
  9. plugins() 方法為獲取所有可用的插件列表, create() 方法則根據mimeType等參數來決定創建相應的插件。下面給出這個類的實現代碼:  
  10.  
  11. webkitpluginfactory.h :  
  12.  
  13. #ifndef WEBKITPLUGINFACTORY_H  
  14. #define WEBKITPLUGINFACTORY_H   
  15. #include <QWebPluginFactory> 
  16. #include <QUrl> 
  17. #include "webkitplugininterface.h" class WebkitPluginFactory : public QWebPluginFactory{    
  18.   Q_OBJECTpublic:    WebkitPluginFactory(QObject *parent = 0);      
  19.   QObject *create (   
  20.     const QString & mimeType, const QUrl & url,   
  21.     const QStringList & argumentNames, const QStringList & argumentValues )   
  22.     const;    QList<QWebPluginFactory::Plugin> plugins () const;   
  23.   private:    // 插件列表    mutable QList<QList<QWebPluginFactory::Plugin> > pluginslist;    
  24. //插件接口,這個接口是我們自定義的插件的同意接口。    //這個接口在后面會講到。    
  25. mutable QList<WebKitPluginInterface *> interfaces;  
  26.  };   
  27.  #endif // WEBKITPLUGINFACTORY_H  
  28.    
  29. webkitpluginfactory.cpp :  
  30.  
  31. #include "webkitpluginfactory.h"  
  32. #include <QPluginLoader>   
  33. #include <QDebug> 
  34. #include <QDir>    
  35. WebkitPluginFactory::WebkitPluginFactory(QObject *parent) :          
  36.     QWebPluginFactory(){      
  37.         qDebug()<<"debug : WebkitPluginFactory";  
  38.      }   
  39.    QList<QWebPluginFactory::Plugin>   
  40.    WebkitPluginFactory::plugins () const{       
  41.    //const char * s=getenv("BROWSER_PLUGIN_DIR");      
  42.      const char *s = "/home/nxx/FlashPlugin-build-desktop";      
  43.      static bool isFirst=true;      
  44.      static QList<QWebPluginFactory::Plugin> plugins;      
  45.        if(!isFirst)    {     
  46.             return plugins;      
  47.    }      
  48.    isFirst=false;      
  49.    plugins.clear();       
  50.    QString spath;      
  51.    if(s)        sspath=s;      
  52.    else        spath=".";       
  53.    QDir dir(spath);      
  54.    QStringList filters;      
  55.    QString abspath=dir.absolutePath();      
  56.    qDebug()<<abspath;     //獲取指定目錄下的所有插件,linux下是插件庫的后綴為so,windows下則是dll  
  57.    filters<<"lib*.so";      
  58.    QStringList files=dir.entryList(filters);      
  59.    qDebug()<<"files: "<<files;    foreach(QString file,files)    {     
  60.         qDebug()<<QLibrary::isLibrary(file);          
  61.         file=dir.filePath(file);          
  62.         qDebug()<<"path: "<<file;          
  63.         QPluginLoader loader(file);          
  64.         QObject * objloader.instance();          
  65.         if(obj==0)              
  66.         qDebug()<<"error: "<<loader.errorString();          
  67.         //下面是載入自定義的接口,只有這樣才能支持動態插件創建,如果固定死了,將不利于擴展          
  68.     WebKitPluginInterface * interfaceqobject_cast<WebKitPluginInterface*> (obj);          
  69.     if(interface==0)        {     
  70.              qDebug()<<"ignore error when loading so" ;             
  71.               continue;          
  72.          }          
  73.    qDebug()<<"load plugins: "<<interface->plugins().at(0).name;          
  74.    plugins.append(interface->plugins());         
  75.     pluginslist.append(interface->plugins());          
  76.     interfaces.append(interface);     
  77.  }    if(plugins.isEmpty()){         
  78.   qDebug()<<"no plugins is loaded!";     
  79.    }      
  80.  return plugins;  
  81. }  QObject * WebkitPluginFactory::create (   
  82. const QString & mimeType,   
  83. const QUrl & url, const QStringList & argumentNames, const QStringList & argumentValues )   
  84. const{      
  85. for(int i=0;i<pluginslist.size();i++)    {     
  86.      for( int j=0;j< pluginslist[i].size();j++)        {         
  87.           foreach(QWebPluginFactory::MimeType mt, pluginslist[i][j].mimeTypes)   {       
  88.     if(mt.name == mimeType) //更具MIME類型,創建相應的插件實例                   
  89.        return interfaces[i]->    
  90.     create( mimeType, url, argumentNames, argumentValues);            
  91.  }        
  92. }     
  93.  }      
  94.  return NULL; //如果沒有,直接返回NULL,webkit會進行處理的  

下面就可以開始編寫插件庫。首先我們定義插件的統一接口,然后每個插件類只需實現該接口就行了,這樣有利于擴展插件庫。

自定義的插件接口:

  1. webkitplugininterface.h :  
  2.  
  3. #ifndef WEBKITPLUGININTERFACE_H  
  4. #define WEBKITPLUGININTERFACE_H  
  5. #include <QWebPluginFactory>   
  6. class WebKitPluginInterface{public:    virtual   
  7. WebKitPluginInterface(){};      
  8. virtual QList<QWebPluginFactory::Plugin> plugins()const =0;      
  9. virtual QObject *create(  
  10.            const QString &mimeType,     
  11.            const QUrl &url,    
  12.            const QStringList &argumentNames,   
  13.            const QStringList &argumentValues)   
  14.            const =0;}; //聲明WebKitPluginInterface為一個接口  
  15.    Q_DECLARE_INTERFACE(WebKitPluginInterface, "com.plugin.uvchip.www/1.0")  
  16.    #endif // WEBKITPLUGININTERFACE_H  

上面的那段代碼中的Q_DECLARE_INTERFACE() 是在定義接口是必須添加聲明。下面是Qt對這個宏的說明:

  1. Q_DECLARE_INTERFACE (   
  2. ClassName, Identifier )This macro associates the given Identifier (a string literal)   
  3. to the interface class called ClassName. The Identifier must be unique. 

下面我們開始實現這個接口:

我們將flashplugin編譯成庫,這樣就可以供插件工廠WebkitPluginFactory加載訪問了。

  1. flashplugin.h :  
  2.  
  3. #ifndef FLASHPLUGIN_H  
  4. #define FLASHPLUGIN_H   
  5. #if defined(FLASHPLUGIN_LIBRARY)  
  6. #  define FLASHPLUGINSHARED_EXPORT Q_DECL_EXPORT#else  
  7. #  define FLASHPLUGINSHARED_EXPORT Q_DECL_IMPORT#endif   
  8. #include "webkitplugininterface.h"  
  9. #include <QtPlugin>   
  10.     class FLASHPLUGINSHARED_EXPORT FlashPlugin : public QObject, public WebKitPluginInterface  {          
  11.     Q_OBJECT          
  12.     Q_INTERFACES(WebKitPluginInterface) //聲明WebKitPluginInterface是一個接口      
  13.     public:          
  14.     FlashPlugin(): WebKitPluginInterface(){};          
  15.     ~FlashPlugin(){};          
  16.     QList<QWebPluginFactory::Plugin> plugins()const ;         
  17.      QObject *create(const QString &mimeType,    
  18.      const QUrl &url,     
  19.      const QStringList &argumentNames,      
  20.      const QStringList &argumentValues) const ;   
  21.      };  
  22.  #endif // FLASHPLUGIN_H  
  23.    
  24. flashplugin.cpp :  
  25.  
  26. #include "flashplugin.h"   
  27. #include <QTextEdit> 
  28. #include <QUrl> 
  29. #include <QDebug>   
  30. QList<QWebPluginFactory::Plugin> FlashPlugin::plugins()const{      
  31. QWebPluginFactory::MimeType mimeType;      
  32. mimeType.name="application/x-shockwave-flash";      
  33. mimeType.description=QObject::tr("flash");      
  34. mimeType.fileExtensions.append(".flv");      
  35. mimeType.fileExtensions.append(".f4v");     
  36.  mimeType.fileExtensions.append(".swf");      
  37.   QList<QWebPluginFactory::MimeType> mimeTypes;      
  38.   mimeTypes.append(mimeType);       
  39.   QWebPluginFactory::Plugin plugin;      
  40.   plugin.name=QObject::tr("External Video viewer plugin");      
  41.   plugin.description=QObject::tr("Use vlc to open video files !!!");     
  42.    plugin.mimeTypes=mimeTypes;       
  43.    QList<QWebPluginFactory::Plugin> plugins ;      
  44.    plugins.append(plugin);      
  45.    return plugins;  
  46.  }  
  47.      QObject *FlashPlugin::create(  
  48.    const QString &mimeType,     
  49.    const QUrl &url,   
  50.    const QStringList &argumentNames,                  
  51.    const QStringList &argumentValues)   
  52.    const{      
  53.    QTextEdit * editnew QTextEdit();      
  54.    edit->setObjectName("我是插件");      
  55.    edit->setPlainText(mimeType + " :  " + url.toString() +"\n\n"           
  56.           +QString::fromUtf8("這里本來是需要adobeFlash插件的,")+"\n"          
  57.            +QString::fromUtf8("但現在替換成了我們自定義的插件(QTextEdit插件了)。")   
  58.        );      
  59.      Q_UNUSED(argumentNames);      
  60.      Q_UNUSED(argumentValues);      
  61.      qDebug()<<"create flash plugin";     
  62.   return edit;  
  63. }  

//Q_EXPORT_PLUGIN2()必不可少,//只有這樣FlashPlugin插件類才為外部可見,插件名為WebkitPluginFlashQ_EXPORT_PLUGIN2(WebkitPluginFlash,FlashPlugin)

Q_EXPORT_PLUGIN2 在Qt幫助文檔中的說明如下:

  1. Q_EXPORT_PLUGIN2 ( PluginName, ClassName )  
  2. This macro exports the plugin class ClassName for the plugin specified by PluginName. 
  3. The value of PluginName should correspond to the TARGET specified in the plugin's project file.   
  4.  
  5. There should be exactly one occurrence of this macro in the source code for a Qt plugin, 
  6. and it should be used where the implementation is written rather than in a header file. 

Q_EXPORT_PLUGIN2(WebkitPluginFlash, FlashPlugin) 中的WebkitPluginFlash為編譯之后生成的庫的名字,這里的生成的庫的完整名字為:libWebkitFlashPlugin.so, FlashPlugin 是插件類名。

現在只要把生成的libWebkitFlashPlugin.so插件庫拷貝到webkitpluginfactory插件工廠能搜到的目錄下就行了(本例中我在webkitpluginfactory.cpp中指定的位置為 const char *s = "/home/nxx/FlashPlugin-build-desktop";)。

上面的插件庫和前面的工廠類,QWebView對象組合在一起就可以實現:

當用QWebView打開包含了需要 mimeType.name="application/x-shockwave-flash" 類型的插件的網頁的時候,就會調用到我們自定義的flashplugin插件了。

效果如下:

詳解為QT Webkit編寫插件案例實現

小結:詳解為QT Webkit編寫插件案例實現的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-27 16:59:19

Qt 動態 插件

2011-06-14 11:48:38

Webkit QT

2011-08-29 14:19:48

QtWebkit瀏覽器

2011-09-09 17:24:39

Qt Webkit模塊

2011-09-09 18:43:13

Qt Webkit瀏覽器

2011-09-01 15:22:16

Qt WebKitWebKit

2011-06-27 17:24:37

Qt 插件

2011-08-29 14:40:58

QTWebkit

2011-10-13 14:26:12

Qt WebKitWebKit

2011-09-07 16:43:38

Qt Widget

2011-09-06 10:46:19

QT播放器

2011-08-29 10:59:47

QtWebkit嵌入式

2011-08-29 10:22:48

QtWebkit 模塊HTML文檔

2011-06-24 15:16:33

Qt 插件

2011-09-01 16:01:25

Qt插件

2011-09-09 15:31:04

Android Web插件

2011-07-05 17:54:43

QT Sqlite ARM

2011-09-09 16:23:16

Android Web測試

2011-08-29 11:25:29

QTWebKit鼠標

2011-08-29 10:01:27

QTWebkit插件
點贊
收藏

51CTO技術棧公眾號

国产一区欧美二区三区| 欲色天天网综合久久| 日日摸日日碰夜夜爽无码| 午夜影院免费视频| 麻豆91小视频| 韩国精品美女www爽爽爽视频| 丰满圆润老女人hd| 高清国产一区二区三区四区五区| 亚洲成人综合视频| 亚洲欧美日韩精品久久久 | 国产日韩视频一区| 欧美电影免费观看高清完整| 国产精品久久久久久妇女6080| www.成人av| 精品一区二三区| 国产精品地址| 最新中文字幕亚洲| 国产精品无码网站| 国产日韩中文在线中文字幕| 一本到不卡免费一区二区| 国产精品8888| 中文日本在线观看| 91麻豆精品在线观看| 亚洲一区亚洲二区| 日韩一级片中文字幕| 欧美午夜a级限制福利片| 中文字幕亚洲综合久久筱田步美| 成人做爰www看视频软件| 日韩三级成人| 91精品福利视频| 男女猛烈激情xx00免费视频| 国产在线激情视频| 欧美激情一二三区| 裸模一区二区三区免费| 亚洲国产精品欧美久久| 久国产精品韩国三级视频| 全球成人中文在线| 黄色激情视频在线观看| 欧美黄免费看| 久久久精品中文字幕| 国产一区二区三区四区五区六区| 久久综合社区| 精品国产91洋老外米糕| 人妻精油按摩bd高清中文字幕| 国产成人毛片| 在线视频国内自拍亚洲视频| 免费无码国产v片在线观看| 好看的中文字幕在线播放| 亚洲精品大片www| 一区二区在线观| 午夜不卡视频| 国产精品久久久久久久久久免费看| 免费看成人午夜电影| 日韩精品视频无播放器在线看| 菠萝蜜视频在线观看一区| 97人人香蕉| 性做久久久久久久| 国产91在线|亚洲| av成人观看| 高h震动喷水双性1v1| 成人午夜碰碰视频| 国产精品久久久久久久久久直播| 成人av一区二区三区在线观看| 国产美女视频91| 91热福利电影| wwwxxxx国产| 成人福利视频网站| 蜜桃久久精品乱码一区二区| 欧美黄色小说| 欧美激情一区二区在线| 亚洲一区二区自拍偷拍| 国产黄色小视频在线| 亚洲男人的天堂av| 男人添女人荫蒂免费视频| av男人的天堂在线观看| 日韩欧美精品在线观看| 无码日韩人妻精品久久蜜桃| 久久青草视频| 欧美sm美女调教| 三级电影在线看| 不卡中文字幕| 欧美成人性生活| 看片网址国产福利av中文字幕| 免费国产自线拍一欧美视频| 国产美女精品视频| 亚洲第一色网站| 久久免费的精品国产v∧| 日韩欧美精品一区二区三区经典| 免费在线看黄色| 亚洲一区视频在线观看视频| 欧美一级在线看| 国产成人午夜性a一级毛片| 91超碰这里只有精品国产| 91精品又粗又猛又爽| 国内精品久久久久久久久电影网| 最好看的2019年中文视频| 欧美片一区二区| 视频在线观看91| 亚洲一区二区久久久久久久| 天天摸天天干天天操| 中文字幕乱码久久午夜不卡| 大片在线观看网站免费收看| 2022成人影院| 日韩一区二区在线观看| 中文字幕在线看高清电影| 欧美成人精品一区二区三区在线看| 色综合久久精品亚洲国产| 国语对白永久免费| 国产高清精品网站| 视频一区亚洲| 另类视频在线| 欧美亚洲丝袜传媒另类| 无码人妻丰满熟妇区毛片蜜桃精品 | 国产视频第一页在线观看| 玉米视频成人免费看| 99久久国产宗和精品1上映| 国产成人在线中文字幕| 日韩中文在线中文网三级| 中文字幕亚洲精品在线| 国产大片一区二区| 国产免费色视频| 亚洲四虎影院| 亚洲精品自拍第一页| 久久久久亚洲av片无码下载蜜桃| 免费成人美女在线观看| 久久伊人一区| 1024在线看片你懂得| 欧美一区二区三区白人 | 亚洲欧美激情在线| 91视频最新入口| 哺乳一区二区三区中文视频 | 三级影片在线观看欧美日韩一区二区| 91网站在线免费观看| 91av资源在线| 在线观看日韩精品| 爱爱免费小视频| 亚洲永久在线| 久久综合色一本| 精精国产xxxx视频在线播放| 欧美tickling网站挠脚心| 91在线播放观看| 国产真实精品久久二三区| 在线视频亚洲自拍| 自拍偷拍欧美日韩| 久久久www成人免费精品| 欧美日韩 一区二区三区| 久久亚洲捆绑美女| 青青在线视频观看| 国产99久久| 国产精品扒开腿爽爽爽视频| 男人的天堂在线视频| 欧美性猛交xxxx| 手机av免费看| 日韩国产在线观看一区| 亚洲春色综合另类校园电影| 国产欧美自拍| 精品国产欧美成人夜夜嗨| 国产又粗又猛又爽又黄的视频一 | 国产另类xxxxhd高清| 日韩av影片在线观看| 日韩 欧美 中文| 久久久久久久久免费| 欧美综合在线观看视频| 欧美性感美女一区二区| 国产在线观看一区二区三区| 国产网站在线免费观看| 日韩一级免费一区| 精品无码一区二区三区电影桃花| 成人国产精品免费网站| 欧美爱爱视频免费看| 国产videos久久| 国产欧美亚洲精品| v天堂福利视频在线观看| 日韩一区二区不卡| 日韩欧美成人一区二区三区| 国产欧美日韩激情| 免费在线观看污网站| 欧美日韩专区| 日韩.欧美.亚洲| 亚洲老司机网| 亚洲 日韩 国产第一| 国产主播福利在线| 51精品国自产在线| 日本网站在线播放| 日本一区二区三区视频视频| 美女被艹视频网站| 午夜亚洲精品| 国产系列第一页| 欧美变态网站| 国产啪精品视频网站| 好吊日av在线| 中文字幕av日韩| 免费av一级片| 欧美性猛交xxxxxxxx| 妺妺窝人体色www聚色窝仙踪| 99国产一区二区三精品乱码| 五月天婷婷亚洲| 夜夜嗨av一区二区三区网站四季av| 亚洲精品8mav| 激情小说亚洲色图| 91在线精品视频| 日韩精品99| 欧美极品第一页| 天堂中文а√在线| 亚洲精品日韩久久久| 国产色在线视频| 91国偷自产一区二区三区观看| 午夜爽爽爽男女免费观看| 久久久久亚洲综合| 国产国语老龄妇女a片| 精品一区二区三区在线观看| 日本成年人网址| 国产精品chinese| 一区二区精品免费视频| 色愁久久久久久| www.成人av.com| 亚洲国产精选| 国产精品成人观看视频国产奇米| av中文字幕在线看| 欧美成人午夜免费视在线看片| 国产高清一区在线观看| 亚洲精品电影在线观看| 精品国自产拍在线观看| 欧美精品亚洲一区二区在线播放| 日日摸天天添天天添破| 天天综合网 天天综合色| 青青草成人免费| 国产精品久久久久一区| 摸摸摸bbb毛毛毛片| 26uuu国产一区二区三区| 亚洲精品激情视频| 丁香婷婷深情五月亚洲| 日本美女久久久| 精品一区二区三区av| 三级视频中文字幕| 人人爽香蕉精品| 日本成人黄色网| 日韩综合在线视频| 黑森林福利视频导航| 国产偷自视频区视频一区二区| 日韩在线观看a| 欧美视频导航| 久久久久久www| 一区二区91| 免费高清在线观看免费| 99成人在线| 色欲av无码一区二区人妻| 99综合视频| 欧美极品欧美精品欧美图片| 免费中文字幕日韩欧美| 99色精品视频| 丝袜美腿亚洲色图| 伊人影院综合在线| 国产最新精品精品你懂的| 五月天婷婷在线观看视频| 国产成人综合在线| 黄色性视频网站| 97国产一区二区| 无码一区二区三区在线| 国产精品网站导航| 91高清免费观看| 亚洲制服丝袜一区| 日韩精品在线观看免费| 一本久久a久久精品亚洲| 日韩av免费播放| 欧美丰满美乳xxx高潮www| 精品久久久中文字幕人妻| 亚洲第一区中文99精品| 欧美日本网站| 啊v视频在线一区二区三区| 成人video亚洲精品| 久久人人爽人人| 欧洲av一区二区| 成人深夜直播免费观看| 视频一区中文字幕精品| 欧美不卡福利| 99精品电影| 国产 欧美 日韩 一区| 性欧美长视频| 国产欧美一区二| 9色porny自拍视频一区二区| www.黄色在线| 一区二区三区日韩在线观看| 丰满少妇乱子伦精品看片| 欧美午夜片在线看| www.久久色| 亚洲欧洲黄色网| 羞羞视频在线观看免费| 国产mv久久久| av日韩在线播放| 亚洲日本精品| 99精品国产在热久久| 成人av毛片在线观看| 26uuu成人网一区二区三区| www色aa色aawww| 日韩欧美在线中文字幕| 国产叼嘿视频在线观看| 亚洲午夜小视频| 白白色在线观看| 国产在线a不卡| 自拍偷拍欧美一区| 免费高清一区二区三区| 日本va欧美va精品| 免费的av网站| 亚洲激情在线激情| 久久这里只有精品9| 亚洲国产精品一区二区三区| 日本精品一区二区三区在线播放| 欧美在线观看日本一区| 日本免费一区二区三区视频| 色综合视频二区偷拍在线| 日韩视频三区| 91精品国产高清91久久久久久| 亚洲国产成人在线| 九九热精品视频在线| 精品国产一区二区三区四区四 | 日韩有码中文字幕在线| 黄黄视频在线观看| 麻豆91在线观看| 免费网站在线高清观看| 日韩欧美精品免费在线| 日本黄视频在线观看| 欧美激情精品久久久久久蜜臀| 欧美高清你懂的| 色播亚洲婷婷| 国产模特精品视频久久久久| 亚洲激情 欧美| 亚洲午夜久久久久久久久电影院 | 免费观看黄色大片| 喷白浆一区二区| 91精品人妻一区二区三区蜜桃欧美| 亚洲国产成人porn| 性欧美8khd高清极品| 久热99视频在线观看| 成人自拍视频| 自拍偷拍99| 国产一区二区三区香蕉| 日韩精品一区二区三区在线视频| 色欧美乱欧美15图片| 欧美套图亚洲一区| 日韩av电影院| 欧美极品中文字幕| 天天操天天爽天天射| 国产色一区二区| 中文字幕日本人妻久久久免费 | 亚洲国产成人一区| av手机在线观看| 久久久久久精| 久久国产66| 日本理论中文字幕| 欧美日韩不卡视频| 日本在线www| 亚洲已满18点击进入在线看片| 91精品成人| 亚洲欧美高清在线| 婷婷综合久久一区二区三区| 色网站免费观看| 国产精品爱久久久久久久| 日韩激情一区| 毛毛毛毛毛毛毛片123| 亚洲综合视频在线观看| 刘玥91精选国产在线观看| 国内精品视频一区| 国产毛片一区二区三区 | 成人国产精品免费观看动漫| 日韩欧美亚洲一区二区三区| 日韩不卡在线观看| 国精产品一区一区三区四川| 亚洲一区二区三区乱码| 国产麻豆精品在线| 日本网站在线免费观看| 亚洲人成电影在线观看天堂色| 日韩午夜视频在线| 青青视频免费在线| 久久久美女艺术照精彩视频福利播放| 在线免费一区二区| 久久亚洲综合国产精品99麻豆精品福利| 亚洲一区二区三区四区电影| 好吊妞无缓冲视频观看| 日本一区二区免费在线 | 国产成人激情av| 中文字幕亚洲乱码熟女1区2区| 最近中文字幕mv在线一区二区三区四区| 精品国产亚洲日本| 久久黄色片视频| 中文字幕日韩一区二区| 日韩在线视频第一页| 国产精品劲爆视频| 精品福利电影| 51调教丨国产调教视频| 8v天堂国产在线一区二区| 国产污视频在线播放| 亚洲精品一区二区三| 成人精品视频一区| 亚洲天堂一二三| 2024亚洲男人天堂| 欧美啪啪一区| 国产在线免费av| 日韩国产在线播放| 日韩精品中文字幕一区二区 |