Android 使用webView加载html页面
创始人
2024-11-19 05:36:40
0

1、首先在布局xml里面指定WebView根节点

  

2、在.java的onCreate()里使用

@Override     protected void onCreate(@Nullable Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_three);          //1. asset目录下的index.html文件         String filePath = "file:///android_asset/html/index.html";         //2.本地内存中的index.html文件         // 获取文件夹路径         String htmlPath = getExternalFilesDir("html").getPath();         File htmlFile = new File(htmlPath);         // 判断是否存在,不存在则创建         if (htmlFile.exists()){             htmlPath =  htmlFile.getPath()+File.separator+"index.html";         }else {             htmlFile.mkdirs();             htmlPath =  htmlFile.getPath()+File.separator+"index.html";         }         // 地址         String localFilePath = "file:///"+htmlPath;         //3.指定的URL的html文件         /**          * 若是不显示,在AndroidManifest.xml中添加android:usesCleartextTraffic="true"          * 并且设置网络权限          */         String urlPath = "https://www.baidu.com/";           myWebView = findViewById(R.id.myWebView);         WebSettings myWebSettings = myWebView.getSettings();         // webView解决加载html页面空白问题         myWebSettings.setJavaScriptEnabled(true);// 设置支持javascript         myWebSettings.setUseWideViewPort(true);//将图片调整到适合webView大小         myWebSettings.setLoadWithOverviewMode(true);//缩放至屏幕大小         myWebSettings.setDomStorageEnabled(true);//设置DOM缓存,当H5网页使用localstorage时一定要设置         myWebSettings.setCacheMode(android.webkit.WebSettings.LOAD_NO_CACHE);// 设置去缓存,防止加载的是上一次数据         myWebSettings.setDatabaseEnabled(true);          // 解决加载本地内存中报错 err_access_denied         myWebSettings.setAllowFileAccess(true);         myWebSettings.setAllowContentAccess(true);          // 解决webView报错 Loading local files from file:// urls is not possible due browser security restrictions         /**         *  设置是否允许运行在一个file schema URL环境下的JavaScript访问来自其他任何来源的内容,          * 包括其他file schema URLs。          * 通过此API可以设置是否允许通过file url加载的Javascript可以访问其他的源,          * 包括其他的文件和http,https等其他的源。与上面的类似,实现一个就可以。          * webSetting.setAllowUniversalAccessFromFileURLs(true);         * */         myWebSettings.setAllowUniversalAccessFromFileURLs(true);         /**          * 设置是否允许运行在一个file schema URL环境下的JavaScript访问来自其他任何来源的内容,          * 包括其他file schema URLs。          * 通过此API可以设置是否允许通过file url加载的Javascript可以访问其他的源,          * 包括其他的文件和http,https等其他的源。与上面的类似,实现一个就可以。          */         //myWebSettings.setAllowUniversalAccessFromFileURLs(true);           //加载html         if (filePath != null) {             myWebView.loadUrl(urlPath);         }       }

3、创建assets目录(与res目录同一级别)

4、将要访问的*.html页面放置到assets目录即可 

5、使用X5内核 腾讯SDK 

地址:腾讯浏览服务

下载sdk:腾讯浏览服务-SDK下载

放置在libs文件夹,引用

AS高版本:

implementation(fileTree("libs"))

AS低版本:

android{     ...     sourceSets {         main {             jniLibs.srcDirs = ['libs']         }     } }    dependencies{     ...     compile files('libs/tbs_sdk_thirdapp_v4.3.0.386_44286_sharewithdownloadwithfile_withoutGame_obfs_20230210_114429.jar') } 

AndroidManifest.xml配置权限

    

Application.java设置初始化

package com.example.yuanzhoulv.activity.app;; import android.app.Application; import com.tencent.smtt.sdk.QbSdk;  public class MyAplication extends Application {      @Override     public void onCreate() {         // TODO Auto-generated method stub         super.onCreate();         //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。          QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {              @Override             public void onViewInitFinished(boolean arg0) {                 // TODO Auto-generated method stub                 //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。             }              @Override             public void onCoreInitFinished() {                 // TODO Auto-generated method stub             }         };         //x5内核初始化接口         QbSdk.initX5Environment(getApplicationContext(),  cb);     }   } 

使用:

*.xml

  

*.java

        //1. asset目录下的index.html文件         String filePath = "file:///android_asset/html/index.html";         //2.本地内存中的index.html文件         // 获取文件夹路径         String htmlPath = getExternalFilesDir("html").getPath();         File htmlFile = new File(htmlPath);         // 判断是否存在,不存在则创建         if (htmlFile.exists()){             htmlPath =  htmlFile.getPath()+File.separator+"index.html";         }else {             htmlFile.mkdirs();             htmlPath =  htmlFile.getPath()+File.separator+"index.html";         }         // 地址         String localFilePath = "file:///"+htmlPath;         //3.指定的URL的html文件         /**          * 若是不显示,在AndroidManifest.xml中添加android:usesCleartextTraffic="true"          * 并且设置网络权限          */         String urlPath = "https://www.baidu.com/";     webView = findViewById(R.id.webView);         com.tencent.smtt.sdk.WebSettings webSettings = webView.getSettings();         webSettings.setJavaScriptEnabled(true);// 设置支持javascript         webSettings.setUseWideViewPort(true);//将图片调整到适合webView大小         webSettings.setLoadWithOverviewMode(true);//缩放至屏幕大小         webSettings.setDomStorageEnabled(true);//设置DOM缓存,当H5网页使用localstorage时一定要设置         webSettings.setCacheMode(android.webkit.WebSettings.LOAD_NO_CACHE);// 设置去缓存,防止加载的是上一次数据         webSettings.setDatabaseEnabled(true);          // 解决加载本地内存中报错 err_access_denied         webSettings.setAllowFileAccess(true);         webSettings.setAllowContentAccess(true);          webSettings.setAllowUniversalAccessFromFileURLs(true);          //加载html         if (filePath != null) {             webView.loadUrl(localFilePath);         }

相关内容

热门资讯

攻略教程开挂!潮汕掌上娱破解,... 攻略教程开挂!潮汕掌上娱破解,h5能反杀吗(研究成果开挂辅助工具);打开点击测试直接进入微信(136...
曝光辅助!樱花之盛挂多少钱,新... 曝光辅助!樱花之盛挂多少钱,新畅游互娱辅助,发现一款开挂(有挂方式);无需打开直接搜索薇:13670...
第三方教程开挂!wepoker... 第三方教程开挂!wepoker辅助视频,超级三加一正版(玩家必看教程开挂辅助软件);无需打开直接搜索...
曝光辅助!创思维激k必胜辅助,... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
技巧教程开挂!微乐自建房怎么提... 技巧教程开挂!微乐自建房怎么提高胜率,蛮王辅助器(必备攻略开挂辅助安装)>>您好:软件加薇13670...
原来有辅助!叮叮川南字牌开挂,... 葫芦娃七子降妖破解版是一款专注玩家量身打造的游戏记牌类型软件,在葫芦娃七子降妖破解版这款游戏中我们可...
解密教程开挂!aapoker透... 解密教程开挂!aapoker透视插件,h5大厅反杀教程(透视真的开挂辅助下载)《详细加薇136704...
了解辅助!上饶窝龙辅助,wep... wepoker破解版内购是一款专注玩家量身打造的游戏记牌类型软件,在wepoker破解版内购这款游戏...
透视教程辅助!海洋麻将辅助器,... 透视教程辅助!海洋麻将辅助器,全游大厅拼十辅助(普及知识开挂辅助工具);无需打开直接搜索打开薇:13...
正品辅助!悠悠卡五星辅助,杭州... 正品辅助!悠悠卡五星辅助,杭州都莱辅助软件有没有用,重大来袭开挂(今日头条)您好:杭州都莱辅助软件有...