付費(fèi)下載
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】AndroidWebView攔截iframe標(biāo)簽內(nèi)部跳轉(zhuǎn)的示例分析
在下給大家分享一下AndroidWebView攔截iframe標(biāo)簽內(nèi)部跳轉(zhuǎn)的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!Android是一種基于Linux內(nèi)核的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由美國(guó)Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。最近項(xiàng)目里有個(gè)廣告位需要?jiǎng)討B(tài)配置,后臺(tái)給了一段html嵌套iframe標(biāo)簽的代碼,需要Android攔截iframe內(nèi)部的跳轉(zhuǎn),自己做處理。比如,下面是一段html代碼,嵌套這iframe標(biāo)簽,src就是跳轉(zhuǎn)地址,我現(xiàn)在就要當(dāng)你點(diǎn)擊該網(wǎng)址的時(shí)候做攔截,自己做處理而不是跳轉(zhuǎn)。<html>
<iframe
src="/"
frameborder='0'
scrolling='no'
width='100%'
height='300'>
</iframe>
</html>oh,我還是第一次知道iframe標(biāo)簽,不過(guò)想著應(yīng)該和普通攔截h6差不多,興致勃勃的就開(kāi)始擼代碼了,但是無(wú)論怎么配置WebView,還是重寫shouldOverrideUrlLoading,就是攔截不了iframe里的網(wǎng)址。。。后來(lái)研(bai)究(du)了很久,終于攔截到了。實(shí)現(xiàn)方法:首先,你的WebView要setWebViewClient,重寫public
boolean
shouldOverrideUrlLoading(WebView
view,
WebResourceRequest
request)
{}
方法,然后setWebChromeClient,重寫onCreateWindow方法,在里面創(chuàng)建新的WevView,加入到webView里,給新的webView
setWebViewClient,再重寫shouldVeerrideUrlLoading方法,在這里攔截。
webView.setWebChromeClient(new
WebChromeClient(){
@Override
public
boolean
onCreateWindow(WebView
webView,
boolean
isDialog,
boolean
isUserGesture,
Message
resultMsg)
{
WebView
newWebView
=
new
WebView(getActivity());
webView.addView(newWebView);
WebView.WebViewTransport
transport
=
(WebView.WebViewTransport)
resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
newWebView.setWebViewClient(new
WebViewClient(){
@Override
public
boolean
shouldOverrideUrlLoading(WebView
webView,
String
url)
{
//TODO
在這里實(shí)現(xiàn)你的攔截方法
if
(url.contains("")){
toast("攔截到了"
+
url);
Intent
intent
=
new
Intent(getActivity(),
CommonWebViewActivity.class);
intent.putExtra("url",url);
startActivity(intent);
}else
{
webView.loadUrl(url);
}
return
true;
}
});
return
true;
}
});完整的代碼如下:private
void
initWebView(WebView
webView)
{
//啟用支持javascript
WebSettings
settings
=
webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setSupportZoom(false);
//支持縮放
settings.setBuiltInZoomControls(false);
//支持手勢(shì)縮放
settings.setDisplayZoomControls(false);
//是否顯示縮放按鈕
settings.setDefaultTextEncodingName("utf-8");
//設(shè)置文本編碼
settings.setUseWideViewPort(false);
//將圖片調(diào)整到適合WebView的大小
settings.setLoadWithOverviewMode(true);
//自適應(yīng)屏幕
settings.setDomStorageEnabled(true);
settings.setSaveFormData(true);
settings.setSupportMultipleWindows(true);
settings.setAppCacheEnabled(true);
settings.setPluginState(WebSettings.PluginState.ON);//支持插件
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
//不適用緩存
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//支持內(nèi)容重新布局
webView.setOverScrollMode(View.OVER_SCROLL_NEVER);
//
取消WebView中滾動(dòng)或拖動(dòng)到頂部、底部時(shí)的陰影
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
//
取消滾動(dòng)條白邊效果
//
>=
19(SDK4.4)啟動(dòng)硬件加速,否則啟動(dòng)軟件加速
if
(Build.VERSION.SDK_INT
>=
Build.VERSION_CODES.KITKAT)
{
webView.setLayerType(View.LAYER_TYPE_HARDWARE,
null);
settings.setLoadsImagesAutomatically(true);
//支持自動(dòng)加載圖片
}
else
{
webView.setLayerType(View.LAYER_TYPE_SOFTWARE,
null);
settings.setLoadsImagesAutomatically(false);
}
webView.setWebViewClient(new
WebViewClient()
{
@Override
public
void
onLoadResource(WebView
view,
String
url)
{
super.onLoadResource(view,
url);
Log.w("webView==onLoadResource===url="
+
url);
}
@Override
public
void
onReceivedSslError(WebView
webView,
SslErrorHandler
sslErrorHandler,
SslError
sslError)
{
sslErrorHceed();
//
接受所有網(wǎng)站的證書
}
@Override
public
boolean
shouldOverrideUrlLoading(WebView
view,
WebResourceRequest
request)
{
if
(request.getUrl().toString().contains("")){
toast("攔截到了baidu");
}else
{
webView.loadUrl(request.getUrl().toString());
}
return
true;
}
});
webView.setWebChromeClient(new
WebChromeClient(){
@Override
public
boolean
onCreateWindow(WebView
webView,
boolean
isDialog,
boolean
isUserGesture,
Message
resultMsg)
{
WebView
newWebView
=
new
WebView(getActivity());
webView.addView(newWebView);
WebView.WebViewTransport
transport
=
(WebView.WebViewTransport)
resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
newWebView.setWebViewClient(new
WebViewClient(){
@Override
public
boolean
shouldOverrideUrlLoading(WebView
webView,
String
url)
{
if
(url.contains("http://")){
toast("攔截到了"
+
url);
Intent
intent
=
new
I
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年農(nóng)業(yè)合作社規(guī)范運(yùn)營(yíng)指南課
- 架線和管道工程材料采購(gòu)與驗(yàn)收手冊(cè)
- 2026浙江杭州市西湖區(qū)農(nóng)業(yè)農(nóng)村局面向社會(huì)招聘編外人員1名備考題庫(kù)及答案詳解(考點(diǎn)梳理)
- 2026青海海西蒙古族藏族自治州格爾木市陸軍第九五二醫(yī)院社會(huì)招聘3人備考題庫(kù)及完整答案詳解
- 計(jì)算機(jī)行業(yè)動(dòng)態(tài):關(guān)注字節(jié)Force大會(huì)和AI產(chǎn)業(yè)鏈
- 職業(yè)噪聲暴露工人高頻聽(tīng)力監(jiān)測(cè)策略
- 礦業(yè)資源公司年終總結(jié)(3篇)
- 職業(yè)健康風(fēng)險(xiǎn)評(píng)估的AI決策支持系統(tǒng)
- 職業(yè)健康促進(jìn)的投資回報(bào)率研究
- 職業(yè)健康促進(jìn)與職業(yè)健康可持續(xù)發(fā)展
- 服務(wù)外包人員保密管理制度(3篇)
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)及答案詳解(奪冠系列)
- 成都高新區(qū)桂溪街道公辦幼兒園招聘編外人員考試備考題庫(kù)及答案解析
- 2025年醫(yī)院病歷管理操作規(guī)范
- 2026云南保山電力股份有限公司校園招聘50人筆試備考題庫(kù)及答案解析
- GB 4053.2-2025固定式金屬梯及平臺(tái)安全要求第2部分:斜梯
- 2026屆上海市長(zhǎng)寧區(qū)市級(jí)名校高一上數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 2026年煙草公司筆試綜合試題及考點(diǎn)實(shí)操指引含答案
- 九年級(jí)寒假期末總結(jié)課件
- 壓鑄機(jī)作業(yè)人員安全培訓(xùn)課件
- 新產(chǎn)品研發(fā)質(zhì)量管控流程詳解
評(píng)論
0/150
提交評(píng)論