中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站開(kāi)發(fā)績(jī)效指標(biāo)奇葩網(wǎng)站100個(gè)

網(wǎng)站開(kāi)發(fā)績(jī)效指標(biāo),奇葩網(wǎng)站100個(gè),做移動(dòng)端電影網(wǎng)站,福州網(wǎng)站設(shè)計(jì)哪里好去年雙十一有個(gè)直播的需求,聽(tīng)起來(lái)很簡(jiǎn)單,技術(shù)也都很成熟,但是真的開(kāi)始實(shí)現(xiàn)后,還是有不少坑的,首先第一個(gè)uc內(nèi)核不支持webRTC協(xié)議,需要重新開(kāi)發(fā)chrome內(nèi)核的webview,其次webview全屏處理、懸浮窗…

去年雙十一有個(gè)直播的需求,聽(tīng)起來(lái)很簡(jiǎn)單,技術(shù)也都很成熟,但是真的開(kāi)始實(shí)現(xiàn)后,還是有不少坑的,首先第一個(gè)uc內(nèi)核不支持webRTC協(xié)議,需要重新開(kāi)發(fā)chrome內(nèi)核的webview,其次webview全屏處理、懸浮窗恢復(fù)同步、輸入框被被輸入法遮蓋等問(wèn)題,都是坑,小子挨個(gè)踩過(guò),查閱很多前輩資料,把能夠即插即用的部分整理出來(lái),以資來(lái)者。

原理

H5在調(diào)用系統(tǒng)全屏和恢復(fù)接口時(shí),會(huì)觸發(fā)WebChromeClientonShowCustomView(View, CustomViewCallback)onHideCustomView()接口,所以只要在兩個(gè)方法中分別實(shí)現(xiàn)橫豎屏切換和全屏展示和隱藏即可。

其中需要注意的:
1、在onShowCustomView()中有個(gè)入?yún)?code>CustomViewCallback,這回調(diào)需要在全屏恢復(fù)時(shí)調(diào)用,以告知H5解決全屏展示。

2、布局中增加一個(gè)充滿(mǎn)屏幕的控件,用以承載全屏的展示。

源碼注釋
/*** Notify the host application that the current page has entered full screen mode. After this* call, web content will no longer be rendered in the WebView, but will instead be rendered* in {@code view}. The host application should add this View to a Window which is configured* with {@link android.view.WindowManager.LayoutParams#FLAG_FULLSCREEN} flag in order to* actually display this web content full screen.** <p>The application may explicitly exit fullscreen mode by invoking {@code callback} (ex. when* the user presses the back button). However, this is generally not necessary as the web page* will often show its own UI to close out of fullscreen. Regardless of how the WebView exits* fullscreen mode, WebView will invoke {@link #onHideCustomView()}, signaling for the* application to remove the custom View.** <p>If this method is not overridden, WebView will report to the web page it does not support* fullscreen mode and will not honor the web page's request to run in fullscreen mode.** <p class="note"><b>Note:</b> if overriding this method, the application must also override* {@link #onHideCustomView()}.** @param view is the View object to be shown.* @param callback invoke this callback to request the page to exit* full screen mode.*/
public void onShowCustomView(View view, CustomViewCallback callback) {};

Google源碼的注釋寫(xiě)的確實(shí)清楚,這個(gè)方法就是做了一件事兒: 更改渲染對(duì)象,新對(duì)象通過(guò)view傳給原生。

但在調(diào)用時(shí),需要注意:

  1. 宿主APP要配置全屏屬性
  2. 在關(guān)閉全屏?xí)r,記得調(diào)用#onHideCustomView#onCustomViewHidden()

實(shí)現(xiàn)

布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><WebViewandroid:id="@+id/float_webview"android:layout_width="match_parent"android:layout_height="match_parent" /><FrameLayoutandroid:id="@+id/float_frameLayout"android:layout_width="match_parent"android:layout_height="match_parent"></FrameLayout>
</LinearLayout>
Java實(shí)現(xiàn)
private void setWebView(){mWebChromeClient = new WebChromeClient() {@Overridepublic void onShowCustomView(View view, CustomViewCallback callback) {super.onShowCustomView(view, callback);if (mCustomView != null) {callback.onCustomViewHidden(); // 通知H5全屏關(guān)閉return;}mCustomView = view; // 緩存全屏視圖mFrameLayout.addView(mCustomView); // 向全屏控件添加全屏視圖mCustomViewCallback = callback;mWebview.setVisibility(View.GONE); // 將已有webview控件隱藏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // 切換橫屏}@Overridepublic void onHideCustomView() {webview.setVisibility(View.VISIBLE);if (mCustomView == null) {return;}mCustomView.setVisibility(View.GONE);mFrameLayout.removeView(mCustomView);mCustomViewCallback.onCustomViewHidden(); // 通知H5全屏關(guān)閉mCustomView = null;setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // 切換豎屏super.onHideCustomView();}};mWebview.setWebChromeClient(mWebChromeClient);
}

參考

Android WebView 全屏播放視頻

http://www.risenshineclean.com/news/42087.html

相關(guān)文章:

  • 深圳公明做網(wǎng)站網(wǎng)絡(luò)輿情監(jiān)測(cè)系統(tǒng)
  • 網(wǎng)站建設(shè) 公司 常州seo設(shè)置是什么
  • 做網(wǎng)站應(yīng)該了解什么問(wèn)題產(chǎn)品線上營(yíng)銷(xiāo)方案
  • 網(wǎng)站在線客服代碼市場(chǎng)監(jiān)督管理局官網(wǎng)
  • wordpress 如何提交表單關(guān)鍵詞整站排名優(yōu)化
  • 西安公司注冊(cè)代辦一般多少錢(qián)網(wǎng)絡(luò)推廣優(yōu)化
  • 做手機(jī)網(wǎng)站的公司買(mǎi)賣(mài)網(wǎng)站
  • 網(wǎng)站空間續(xù)費(fèi)合同中山排名推廣
  • 南京做網(wǎng)站南京樂(lè)識(shí)贊網(wǎng)絡(luò)營(yíng)銷(xiāo)是什么工作主要干啥
  • 網(wǎng)站開(kāi)發(fā)教學(xué)網(wǎng)站百度云網(wǎng)盤(pán)資源搜索
  • 騰訊企點(diǎn)app下載安裝關(guān)鍵詞優(yōu)化公司電話(huà)
  • 馬鞍山網(wǎng)站制作公司阿里云免費(fèi)建站
  • 武漢市市政建設(shè)集團(tuán)網(wǎng)站網(wǎng)站搜索排名靠前
  • 武漢建設(shè)一個(gè)網(wǎng)站多少錢(qián)汕頭seo計(jì)費(fèi)管理
  • 網(wǎng)站代碼開(kāi)發(fā)文檔模板媒體:北京不再公布各區(qū)疫情數(shù)據(jù)
  • 正版搜索引擎優(yōu)化澤成杭州seo網(wǎng)站推廣排名
  • 給網(wǎng)站做推廣一般花多少錢(qián)百度競(jìng)價(jià)排名的利與弊
  • 重慶模板網(wǎng)站多少錢(qián)免費(fèi)網(wǎng)站制作教程
  • 最優(yōu)網(wǎng)絡(luò)做網(wǎng)站360公司官網(wǎng)首頁(yè)
  • 做裝修網(wǎng)站推薦客戶(hù)靠譜嗎百度推廣獲客
  • 贛州章貢區(qū)房?jī)r(jià)google優(yōu)化排名
  • 鎮(zhèn)江網(wǎng)站建設(shè)策劃被公司優(yōu)化掉是什么意思
  • 做網(wǎng)站需要哪些資料百度廣告客服電話(huà)
  • 怎么用wordpress做網(wǎng)站seo專(zhuān)員工資一般多少
  • 百度云網(wǎng)站建設(shè)教程視頻域名seo站長(zhǎng)工具
  • 縣城購(gòu)物網(wǎng)站網(wǎng)絡(luò)營(yíng)銷(xiāo)策略主要包括
  • 怎樣設(shè)計(jì)靜態(tài)網(wǎng)站頁(yè)面谷歌官方app下載
  • 獨(dú)立電商網(wǎng)站seo建站流程新手搭建網(wǎng)站第一步
  • 上海徐匯做網(wǎng)站寧波公司做網(wǎng)站
  • 梅河口做網(wǎng)站在百度做廣告多少錢(qián)