Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

04-01 阅读 0评论

3、修改 MainActivity 文件

Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题,Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,方法,第1张
(图片来源网络,侵删)

重写onCreate方法:

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//progressBar = (ProgressBar) findViewById(R.id.progressbar);//进度条

webView = (WebView) findViewById(R.id.webview);

Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题,Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,方法,第2张
(图片来源网络,侵删)

webView.getSettings().setAllowUniversalAccessFromFileURLs(true);

webView.getSettings().setAllowFileAccessFromFileURLs(true);

// webview的设置中添加如下代码

try {

if (Build.VERSION.SDK_INT >= 16) {

Class clazz = webView.getSettings().getClass();

Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题,Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,方法,第3张
(图片来源网络,侵删)

Method method = clazz.getMethod(“setAllowUniversalAccessFromFileURLs”, boolean.class);

if (method != null) {

method.invoke(webView.getSettings(), true);

}

}

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

}

//webView.loadUrl(“http://172.17.1.176:8082/”);//加载url

webView.loadUrl(API);

//使用webview显示html代码

// webView.loadDataWithBaseURL(null,“ 欢迎您 ” +

// “

使用webview显示 html代码

”, “text/html” , “utf-8”, null);

webView.addJavascriptInterface(this, “android”);//添加js监听 这样html就能调用客户端

webView.setWebChromeClient(webChromeClient);

webView.setWebViewClient(webViewClient);

WebSettings webSettings = webView.getSettings();

/**

  • LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据
  • LOAD_DEFAULT: (默认)根据cache-control决定是否从网络上取数据。
  • LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.
  • LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。

    */

    webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);//不使用缓存,只从网络获取数据.

    webView.getSettings().setTextZoom(100);

    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false

    webView.getSettings().setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞

    webView.getSettings().setSupportZoom(true);//是否可以缩放,默认

    webView.getSettings().setBuiltInZoomControls(true);//是否显示缩放按钮,默认false

    webView.getSettings().setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式

    webView.getSettings().setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题

    webView.getSettings().setAppCacheEnabled(true);//是否使用缓存

    webView.getSettings().setDomStorageEnabled(true);//DOM Storage

    }

    配置WebviewClient

    //WebViewClient主要帮助WebView处理各种通知、请求事件

    private WebViewClient webViewClient = new WebViewClient() {

    @Override

    public void onPageFinished(WebView view, String url) {//页面加载完成

    //progressBar.setVisibility(View.GONE);

    }

    public void onPageStarted(WebView view, String url, Bitmap favicon) {//页面开始加载

    //progressBar.setVisibility(View.VISIBLE);

    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)

    @Override

    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {

    Log.i(“ansen”, “拦截url:” + request.getUrl());

    return super.shouldOverrideUrlLoading(view, request);

    }

    };

    //WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等

    private WebChromeClient webChromeClient = new WebChromeClient() {

    //不支持js的alert弹窗,需要自己监听然后通过dialog弹窗

    public boolean onJsAlert(WebView webView, String url, String message, JsResult result) {

    AlertDialog.Builder localBuilder = new AlertDialog.Builder(webView.getContext());

    localBuilder.setMessage(message).setPositiveButton(“确定”, null);

    localBuilder.setCancelable(false);

    localBuilder.create().show();

    //注意:

    //必须要这一句代码:result.confirm()表示:

    //处理结果为确定状态同时唤醒WebCore线程

    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

    深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

    因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

    如果你觉得这些内容对你有帮助,可以添加V:vip204888 备注Android获取(资料价值较高,非无偿)

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    文末

    架构师不是天生的,是在项目中磨练起来的,所以,我们学了技术就需要结合项目进行实战训练,那么在Android里面最常用的架构无外乎 MVC,MVP,MVVM,但是这些思想如果和模块化,层次化,组件化混和在一起,那就不是一件那么简单的事了,我们需要一个真正身经百战的架构师才能讲解透彻其中蕴含的深理。

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    一线互联网Android面试题总结含详解(初级到高级专题)

    Android开发:通过-webview-将网页打包成安卓应用,安卓基础面试题

    9403)]

    [外链图片转存中…(img-wtC5HgCw-1711551319403)]

    一线互联网Android面试题总结含详解(初级到高级专题)

    [外链图片转存中…(img-EeCshqBW-1711551319404)]

    本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]