国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

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

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

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

原理

H5在調(diào)用系統(tǒng)全屏和恢復(fù)接口時(shí),會觸發(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è)充滿屏幕的控件,用以承載全屏的展示。

源碼注釋
/*** 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源碼的注釋寫的確實(shí)清楚,這個(gè)方法就是做了一件事兒: 更改渲染對象,新對象通過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://aloenet.com.cn/news/42087.html

相關(guān)文章:

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