【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android在項(xiàng)目中如何接入騰訊TBS瀏覽器WebView_第1頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android在項(xiàng)目中如何接入騰訊TBS瀏覽器WebView_第2頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android在項(xiàng)目中如何接入騰訊TBS瀏覽器WebView_第3頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android在項(xiàng)目中如何接入騰訊TBS瀏覽器WebView_第4頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android在項(xiàng)目中如何接入騰訊TBS瀏覽器WebView_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余2頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android在項(xiàng)目中如何接入騰訊TBS瀏覽器WebView

騰訊TBS瀏覽器服務(wù)1.特殊功能:2.運(yùn)行環(huán)境3.SDK尺寸指標(biāo)4.原生和X5WebView的類對應(yīng)表在APP中集成1.導(dǎo)Jar包2.權(quán)限<uses-permission

android:name="android.permission.WRITE_EXTERNAL_STORAGE"

/>

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE"

/>

<uses-permission

android:name="android.permission.ACCESS_WIFI_STATE"

/>

<uses-permission

android:name="android.permission.INTERNET"

/>

<uses-permission

android:name="android.permission.READ_PHONE_STATE"

/>3.初始化X5內(nèi)核public

class

BaseApplicatiom

extends

Application

{

@Override

public

void

onCreate()

{

super.onCreate();

//初始化X5內(nèi)核

QbSdk.initX5Environment(this,

new

QbSdk.PreInitCallback()

{

@Override

public

void

onCoreInitFinished()

{

//x5內(nèi)核初始化完成回調(diào)接口,此接口回調(diào)并表示已經(jīng)加載起來了x5,有可能特殊情況下x5內(nèi)核加載失敗,切換到系統(tǒng)內(nèi)核。

}

@Override

public

void

onViewInitFinished(boolean

b)

{

//x5內(nèi)核初始化完成的回調(diào),為true表示x5內(nèi)核加載成功,否則表示x5內(nèi)核加載失敗,會(huì)自動(dòng)切換到系統(tǒng)內(nèi)核。

Log.e("@@","加載內(nèi)核是否成功:"+b);

}

});

}

}4.使用WebView<com.tencent.smtt.sdk.WebView

android:id="@+id/twv_test"

android:layout_width="match_parent"

android:layout_height="match_parent"/>高級一點(diǎn)的使用1.全屏播放視頻android:configChanges="orientation|screenSize|keyboardHidden"http://這個(gè)對宿主沒什么影響,建議聲明

getWindow().setFormat(PixelFormat.TRANSLUCENT);<!--

聲明為不透明,這個(gè)視各app情況所需,不強(qiáng)制需求,如果聲明了,對體驗(yàn)更有利

-->

<item

name="android:windowIsTranslucent">false</item>。webview.setLayerType()

webview.setDrawingCacheEnabled(true);2.輸入法android:windowSoftInputMode="stateHidden|adjustResize"getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE

|

WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);3.自定義UA//其中APP_NAME_UA是app自定義UA

webSetting.setUserAgentString(webSetting.getUserAgentString()

+

APP_NAME_UA);4.額外的視頻播放器<activity

android:name="com.tencent.smtt.sdk.VideoActivity"

android:configChanges="orientation|screenSize|keyboardHidden"

android:exported="false"

android:launchMode="singleTask"

android:alwaysRetainTaskState="true">

<intent-filter>

<action

android:name="com.tencent.smtt.tbs.video.PLAY"

/>

<category

android:name="ent.category.DEFAULT"

/>

</intent-filter>

</activity>//判斷當(dāng)前Tbs播放器是否已經(jīng)可以使用。

public

static

boolean

canUseTbsPlayer(Context

context)

//直接調(diào)用播放接口,傳入視頻流的url

public

static

void

openVideo(Context

context,

String

videoUrl)

//extraData對象是根據(jù)定制需要傳入約定的信息,沒有需要可以傳如null

public

static

void

openVideo(Context

context,

String

videoUrl,

Bundle

extraData)5.文件選擇器注意的地方1.cookie的調(diào)整2.WebView寬高的獲取webView.getView().getWidth();3.X5內(nèi)核/upload/information/20200623/125/121060.png4.64位手機(jī)的兼容如果使用是Eclipse如果使用的是AndroidStudio:ndk{

abiFilters

"armeabi",

"armeabi-v7a",

"x86",

"mips"

}5.混淆簡單包裝public

class

ProgressWebview

extends

WebView

{

private

ProgressBar

progressbar;

//進(jìn)度條

private

int

progressHeight

=

10;

//進(jìn)度條的高度,默認(rèn)10px

public

ProgressWebview(Context

context)

{

super(context);

initView(context);

}

public

ProgressWebview(Context

context,

AttributeSet

attributeSet)

{

super(context,

attributeSet);

initView(context);

}

private

void

initView(Context

context)

{

//開啟js腳本支持

getSettings().setJavaScriptEnabled(true);

//創(chuàng)建進(jìn)度條

progressbar

=

new

ProgressBar(context,

null,

android.R.gressBarStyleHorizontal);

//設(shè)置加載進(jìn)度條的高度

progressbar.setLayoutParams(new

AbsoluteLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,

progressHeight,

0,

0));

Drawable

drawable

=

context.getResources().getDrawable(R.gress_bar_states);

progressbar.setProgressDrawable(drawable);

//添加進(jìn)度到WebView

addView(progressbar);

//適配手機(jī)大小

getSettings().setUseWideViewPort(true);

getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);

getSettings().setLoadWithOverviewMode(true);

getSettings().setSupportZoom(true);

getSettings().setBuiltInZoomControls(true);

getSettings().setDisplayZoomControls(false);

setWebChromeClient(new

WVChromeClient());

setWebViewClient(new

WVClient());

}

//進(jìn)度顯示

private

class

WVChromeClient

extends

WebChromeClient

{

@Override

public

void

onProgressChanged(WebView

view,

int

newProgress)

{

if

(newProgress

==

100)

{

progressbar.setVisibility(GONE);

}

else

{

if

(progressbar.getVisibility()

==

GONE)

progressbar.setVisibility(VISIBLE);

progressbar.setProgress(newProgress);

}

if

(mListener

!=

null)

{

mListener.onProgressChange(view,

newProgress);

}

super.onProgressChanged(view,

newProgress);

}

}

private

class

WVClient

extends

WebViewClient

{

@Override

public

boolean

shouldOverrideUrlLoading(WebView

view,

String

url)

{

//在當(dāng)前Activity打開

view.loadUrl(url);

return

true;

}

@Override

public

void

onReceivedSslError(WebView

view,

SslErrorHandler

handler,

SslError

error)

{

//https忽略證書問題

ceed();

}

@Override

public

void

onPageFinished(WebView

view,

String

url)

{

progressbar.setVisibility(GONE);

if

(mListener

!=

null)

{

mListener.onPageFinish(view);

}

super.onPageFinished(view,

url);

}

}

private

onWebViewList

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論