日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中WebView加载sdcard中的html显示

發布時間:2025/3/19 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中WebView加载sdcard中的html显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

Android中使用WebView加載本地html并支持運行JS代碼和支持縮放:

Android中使用WebView加載本地html并支持運行JS代碼和支持縮放_BADAO_LIUMANG_QIZHI的博客-CSDN博客

上面實現webview加載顯示html是將其放在安裝包內,即代碼結構下assets目錄下

如果html中需要訪問的靜態資源,比如照片資源需要更換或者照片資源特別多時,對于安裝包打包和更換維護都不方便。

如果可以將html以及其他資源放在手機所在的sdcard中,會很方便。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi?
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

1、設置webview支持訪問文件數據

??????? WebSettings settings = webView.getSettings();// 設置允許訪問文件數據settings.setAllowFileAccess(true);settings.setAllowContentAccess(true);

2、app授予訪問文件的權限

在AndroidManifest.xml中,添加權限

??? <!--? 從SDCard讀取數據權限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

3、將html以及需要的image、js等資源復制到手機的文件管理器sdcard某目錄下

這里使用的是模擬器,注意sdcard的目錄的獲取

這里的html的路徑是

sdcard/map/offLineTileMap.html

3、webview中加載html的路徑修改為

webView.loadUrl("file:///mnt/sdcard/map/offLineTileMap.html");

4、activty的完整代碼

package com.badao.androidstudydemo;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.webkit.JavascriptInterface; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.widget.Toast;public class WebViewActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view);//獲取webviewWebView webView = findViewById(R.id.webview);//設置為ChromeClinet 才能執行js代碼WebChromeClient webChromeClient = new WebChromeClient();webView.setWebChromeClient(webChromeClient);//增加JS接口//webView.addJavascriptInterface(this,"badao");WebSettings settings = webView.getSettings();//設置開啟js支持settings.setJavaScriptEnabled(true);// 是否支持縮放settings.setSupportZoom(true);//解決跨域問題settings.setAllowFileAccessFromFileURLs(true); //Maybe you don't need this rulesettings.setAllowUniversalAccessFromFileURLs(true);// 設置允許訪問文件數據settings.setAllowFileAccess(true);settings.setAllowContentAccess(true);//加載本地html//加載在線json顯示地圖//webView.loadUrl("file:///android_asset/onLineGeoJsonMap.html");//加載離線json//webView.loadUrl("file:///android_asset/offLineGeoJsonMap.html");//加載本地sdcard中html文件webView.loadUrl("file:///mnt/sdcard/map/offLineTileMap.html");}//JS調用Android方法@JavascriptInterfacepublic void jsCallAndroid(){Toast.makeText(this,"JS調用Android方法成功",Toast.LENGTH_LONG).show();} }

5、運行效果

?

總結

以上是生活随笔為你收集整理的Android中WebView加载sdcard中的html显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。