Android中設(shè)置WebView禁止縮放網(wǎng)頁的步驟
在 Android 14 中,你可以通過以下步驟來設(shè)置 WebView,禁止縮放網(wǎng)頁:
- 在 WebView 加載網(wǎng)頁之前,獲取 WebSettings 對象:
WebSettings webSettings = webView.getSettings();
- 使用 WebSettings 對象禁用縮放:
webSettings.setSupportZoom(false); webSettings.setBuiltInZoomControls(false); webSettings.setDisplayZoomControls(false);
setSupportZoom(false)
禁止 WebView 支持縮放功能。setBuiltInZoomControls(false)
禁用內(nèi)置的縮放控件。setDisplayZoomControls(false)
不顯示縮放控件。
- 此外,你還可以設(shè)置 WebView 的
setUseWideViewPort
和setLoadWithOverviewMode
屬性,以確保網(wǎng)頁適應(yīng)設(shè)備屏幕,不允許用戶縮放:
webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true);
setUseWideViewPort(true)
設(shè)置 WebView 使用廣泛的視口,使網(wǎng)頁內(nèi)容適應(yīng)屏幕寬度。setLoadWithOverviewMode(true)
設(shè)置 WebView 加載的頁面以總覽模式顯示,即按屏幕大小縮放內(nèi)容。
完整示例代碼:
WebView webView = findViewById(R.id.webView); WebSettings webSettings = webView.getSettings(); webSettings.setSupportZoom(false); webSettings.setBuiltInZoomControls(false); webSettings.setDisplayZoomControls(false); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webView.loadUrl("https://www.example.com");
通過以上設(shè)置,WebView 將禁止用戶縮放網(wǎng)頁,并確保網(wǎng)頁內(nèi)容適應(yīng)設(shè)備屏幕。無論在 Android 14 還是其他版本,這些設(shè)置都適用。
======================================================================
如果上述設(shè)置仍然無法禁止 WebView 的縮放功能,你可以嘗試以下幾種方法:
- 在 HTML 中添加 viewport meta 標(biāo)簽:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
這個 meta 標(biāo)簽可以控制網(wǎng)頁的縮放行為。user-scalable=no
參數(shù)可以禁止用戶手動縮放網(wǎng)頁。
- 使用 JavaScript 禁用縮放:
如果你有控制網(wǎng)頁內(nèi)容的權(quán)限,可以在網(wǎng)頁加載完成后,通過 JavaScript 禁用縮放功能。在 WebView 的 onPageFinished
回調(diào)中添加以下代碼:
webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); view.evaluateJavascript("document.addEventListener('touchstart', function(event) { event.preventDefault(); }, false);", null); view.evaluateJavascript("document.addEventListener('gesturestart', function(event) { event.preventDefault(); }, false);", null); } });
這段代碼通過 JavaScript 禁用了觸摸事件和手勢事件,從而阻止了縮放行為。
- 創(chuàng)建自定義的 WebView:
如果以上方法仍然無法滿足需求,你可以考慮創(chuàng)建一個自定義的 WebView,并重寫其 onTouchEvent
方法來攔截和處理觸摸事件,禁止縮放操作。
public class NonScalableWebView extends WebView { public NonScalableWebView(Context context) { super(context); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getPointerCount() > 1) { // 多個手指觸摸時,禁止縮放 return false; } return super.onTouchEvent(event); } }
然后在布局文件中使用這個自定義的 WebView:
<your.package.name.NonScalableWebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" />
以上方法可以幫助你在 Android 14 以及其他版本中禁止 WebView 的縮放功能。你可以根據(jù)實際情況選擇適合的方法來實現(xiàn)。
=================================================================
安卓中設(shè)置好屬性,如果還是不管用,那么網(wǎng)頁中僅保留這個吧,去掉initial-scale=1.0。
<meta name="viewport" content="width=device-width">
并設(shè)置js
禁止雙指放大
document.documentElement.addEventListener('touchstart', function (event) { if (event.touches.length > 1) { event.preventDefault(); } }, false);
禁止雙擊放大
var lastTouchEnd = 0; document.documentElement.addEventListener('touchend', function (event) { var now = Date.now(); if (now - lastTouchEnd <= 300) { event.preventDefault(); } lastTouchEnd = now; }, false);
總結(jié)
到此這篇關(guān)于Android中設(shè)置WebView禁止縮放網(wǎng)頁的文章就介紹到這了,更多相關(guān)WebView禁止縮放網(wǎng)頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Flutter搞定寬高不統(tǒng)一布局開發(fā)的方法詳解
我們在開發(fā)移動端界面的時候,經(jīng)常會遇到一組尺寸不一的組件需要作為同一組展示,所以本文就將利用Wrap組件搞定寬高不統(tǒng)一布局開發(fā),需要的可以參考一下2023-06-06Android利用AudioRecord類實現(xiàn)音頻錄制程序
這篇文章主要為大家詳細(xì)介紹了Android利用AudioRecord類實現(xiàn)音頻錄制程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04Android Studio finish()方法的使用與解決app點擊“返回”(直接退出)
這篇文章主要介紹了Android Studio finish()方法的使用與解決app點擊“返回”(直接退出),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04android當(dāng)前apn的狀態(tài)以及獲取方法
在絕大多數(shù)android機(jī)器etc路徑下存放一個的apns-conf.xml文件,表示當(dāng)前機(jī)器使用的apn信息通過root機(jī)器可以push出來看看,具體路徑可以上網(wǎng)搜下,接下來介紹獲取apn的狀態(tài)的方法2013-01-01Flutter將整個App變?yōu)榛疑暮唵螌崿F(xiàn)方法
Flutter?是?Google?開源的?UI?工具包,幫助開發(fā)者通過一套代碼庫高效構(gòu)建多平臺精美應(yīng)用,這篇文章主要給大家介紹了關(guān)于Flutter將整個App變?yōu)榛疑膶崿F(xiàn)方法,在Flutter中實現(xiàn)整個App變?yōu)榛疑欠浅:唵蔚?需要的朋友可以參考下2021-12-12Win10下android studio開發(fā)環(huán)境配置圖文教程
這篇文章主要為大家詳細(xì)介紹了Win10下android studio開發(fā)環(huán)境配置圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07Android ViewPager實現(xiàn)無限循環(huán)的實例
這篇文章主要介紹了Android ViewPager實現(xiàn)無限循環(huán)的實例的相關(guān)資料,需要的朋友可以參考下2017-07-07