成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析Android WebKit插件基本結構

移動開發
Android WebKit插件基本結構是本文要介紹的內容,主要是來了解并學習Android WebKit插件的應用,具體內容的實現來看本文詳解。

Android WebKit插件基本結構是本文要介紹的內容,主要是來了解并學習Android WebKit插件的應用,具體內容的實現來看本文詳解。

1、插件

WebKit插件在和引擎交互時,主要涉及到兩個接口:

插件=>引擎:NPNetscapeFuncs

引擎=>插件:NPPluginFuncs

其中,插件到引擎的接口WebKit已經實現了。插件要做的事情就是實現引擎=>插件的接口。

  1. typedef struct _NPPluginFuncs {  
  2.     uint16_t size;  
  3.     uint16_t version;  
  4.     NPP_NewUPP newp;  
  5.     NPP_DestroyUPP destroy;  
  6.     NPP_SetWindowUPP setwindow;  
  7.     NPP_NewStreamUPP newstream;  
  8.     NPP_DestroyStreamUPP destroystream;  
  9.     NPP_StreamAsFileUPP asfile;  
  10.     NPP_WriteReadyUPP writeready;  
  11.     NPP_WriteUPP write;  
  12.     NPP_PrintUPP print;  
  13.     NPP_HandleEventUPP event;  
  14.     NPP_URLNotifyUPP urlnotify;  
  15.     // The type of this used to be JRIGlobalRef, which was a void *.  
  16.     // Use void * here directly now that we don't expose any Java  
  17.     // specific things in the plugin API.  
  18.     void* javaClass;  
  19.     NPP_GetValueUPP getvalue;  
  20.     NPP_SetValueUPP setvalue;  
  21. } NPPluginFuncs; 

本文將參考Android的插件例子來進行講解插件的基本原理。

2、Android WebKit插件

接口的初始化:

NPNetscapeFuncs的初始化:

  1. initializeExtraBrowserFuncs 

事件處理:

  1. HTMLPlugInElement::defaultEventHandler  
  2. PluginView::handleEvent  
  3. PluginView::handleTouchEvent  
  4. PluginWidgetAndroid::sendEvent  
  5. NPPluginFuncs::event 

進入具體插件的NPP_HandleEvent

創建Surface:

  1. PluginView::setFrameRect  
  2. PluginView::setNPWindowIfNeeded  
  3. PluginWidgetAndroid::setWindow  
  4. PluginWidgetAndroid::layoutSurface  
  5. NPPluginFuncs::getvalue,kJavaSurface_ANPGetValue 

進入插件NPP_GetValue

所謂Surface,其實就是一塊內存區域。對于BackgroundPlugin,就是繼承自TextView。

也有可能是SurfaceView的子類,取決于具體應用情境。

設置窗口并刷新:

  1. PluginView::setParent|PluginView::paint  
  2. PluginView::updatePluginWidget|PluginView::setFrameRect  
  3. PluginView::setNPWindowIfNeeded(!!!)  
  4. m_plugin->pluginFuncs()->setwindow  
  5. NPP_SetWindow(NPPluginFuncs::setwindow)  
  6. NPNetscapeFuncs::invalidaterect  
  7. NPN_InvalidateRect  
  8. PluginView::invalidateRect 

刷新界面:

  1. PluginView::invalidateRect  
  2. PluginWidgetAndroid::inval  
  3. WebViewCore::invalPlugin  
  4. WebViewCore::pluginInvalTimerFired  
  5. WebViewCore::drawPlugins  
  6. PluginWidgetAndroid::draw,發出kDraw_ANPEventType事件,  
  7. NPPluginFuncs::event 

插件的加載:

  1. HTMLObjectElement::attach  
  2. HTMLPlugInElement::updateWidgetCallback  
  3. HTMLObjectElement::updateWidget|HTMLEmbedElement::updateWidget|FrameView::updateWidgets|  
  4. RenderEmbeddedObject::updateWidget  
  5. FrameLoader::requestObject  
  6. FrameLoader::loadPlugin  
  7. FrameLoaderClientAndroid::createPlugin  
  8. PluginView::create  
  9. PluginView::platformInit  
  10. PluginView::PluginView  
  11. PluginView::platformInit  
  12. {  
  13. setPlatformWidget(new PluginViewBridgeAndroid());  
  14. new PluginWidgetAndroid  

小結:解析Android WebKit插件基本結構的內容介紹完了,希望通過Android WebKit插件內容的學習能對你有所幫助!

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

2011-09-09 15:51:58

Android Web應用

2011-09-09 17:31:45

Android WebJavascript

2011-09-09 14:39:43

S60 Webkit

2011-08-29 10:01:27

QTWebkit插件

2011-09-01 14:04:45

QT Webkit插件

2011-09-09 18:43:13

Qt Webkit瀏覽器

2011-09-09 16:23:16

Android Web測試

2011-09-09 16:00:02

Android Web實例

2013-09-09 16:46:38

Webkit內核

2011-08-29 14:19:48

QtWebkit瀏覽器

2010-01-25 10:15:47

Android系統架構

2011-09-01 15:22:16

Qt WebKitWebKit

2013-03-06 11:10:12

WebKit瀏覽器

2013-03-19 13:57:01

WebKit前端

2010-06-13 15:16:02

2009-07-09 13:45:06

Servlet基本結構

2013-05-22 10:37:37

OperaWebkit瀏覽器

2013-07-05 14:41:27

Android

2011-09-09 16:19:40

Android Web

2014-04-16 15:11:19

Spark
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区免费 | av在线电影网| 日韩欧美一区二区三区 | 午夜寂寞影院在线观看 | 六月色婷 | 91精品久久久久久久久 | 日日操视频 | 精品成人免费视频 | 欧美久久精品一级c片 | 午夜爽爽爽男女免费观看影院 | 中文字幕亚洲一区 | 亚洲免费视频一区二区 | 午夜视频一区二区 | 9久久 | 国产无套一区二区三区久久 | 日批免费看 | 亚洲成人一级 | 欧美乱码精品一区二区三区 | 亚洲国产一区二区在线 | 国产高清精品一区二区三区 | 日韩不卡一区二区三区 | 天天综合国产 | 伊人久久综合 | 三级国产三级在线 | 毛片软件 | 91免费福利视频 | 久久久91精品国产一区二区三区 | 久久久久久黄 | 中文天堂在线观看 | 亚洲激情网站 | 日韩三级在线 | 亚洲第1页 | 浴室洗澡偷拍一区二区 | 日韩欧美在线免费观看视频 | 久久中文视频 | 一区二区三区不卡视频 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 风间由美一区二区三区在线观看 | 粉色午夜视频 | 国产精品区一区二区三区 | 韩日一区二区 |