湛江阿里云代理商:android webview加载网络图片

在Android的WebView中展示网络图片的方法如下:

1.在AndroidManifest.xml文件中添加网络权限。

<uses-permission android:name="android.permission.INTERNET" />

2.在WebView的Settings中设置JavaScriptEnabled和DomStorageEnabled为true以便JS的执行。

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);

3.在WebViewClient的onPageFinished方法中执行JavaScript脚本以替换图片的URL。

webView.setWebViewClient(new WebViewClient() {
   @Override
   public void onPageFinished(WebView view, String url) {
      super.onPageFinished(view, url);
      String js = "javascript:(function() { " +
                "var imgs = document.getElementsByTagName('img');" +
                "for (var i = 0; i < imgs.length; i++) {" +
                "    var img = imgs[i];   " +
                "    img.src = img.src.replace(/^http:/, 'https:');" +
                "}})();";
      view.loadUrl(js);
   }
});

webView.loadUrl("https://www.example.com");

其中将图片URL的http协议替换为https协议是为了保证安全性,避免被第三方劫持。

在Android中使用WebView加载网络图片需要注意以下几点:

  1. 需要添加网络权限

在AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name="android.permission.INTERNET" />
  1. 需要开启WebView的JavaScript支持

在MainActivity.java中的onCreate()方法中添加以下代码:

webView.getSettings().setJavaScriptEnabled(true);
  1. 需要使用WebViewClient并重写shouldOverrideUrlLoading()方法

在MainActivity.java中的onCreate()方法中添加以下代码:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
});
  1. 在HTML代码中使用网络图片链接

在HTML代码中引用网络图片的时候,需要使用完整的网络图片链接,例如:

<img src="https://www.example.com/images/sample.jpg" />

完整代码如下:

湛江阿里云代理商:android webview加载网络图片

MainActivity.java

import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

        String html = "<html><body><h1>网络图片测试</h1><img src="https://www.example.com/images/sample.jpg" /></body></html>";
        webView.loadDataWithBaseURL("", html, "text/html", "UTF-8", "");
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/158035.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月7日 23:49
下一篇 2024年3月8日 00:12

相关推荐

  • 阿里云回应源代码怎么看

    阿里云系统怎么root,不懂不要乱讲 用卓大师(甜椒,刷机精灵,360一键root) 应该方法也是大同小异 1.点设置 选择开发人员选项 勾选USB调试 然后关机 2.下载官方卓大师 安装 打开 然后同时按手机音量下键+电源键 进入 选择第四行以TEST开头的 点主页键(下面触屏第二个)。 3.连接数据线接上电脑 等卓大师识别出手机型号后 点卓大师界面最后一…

    2023年8月27日
    67800
  • 阿里云服务器密码忘了怎么解除

    如果您忘记了阿里云服务器的密码,您可以通过以下步骤进行解决: 登录阿里云控制台,进入您的云服务器实例页面。 找到您要重置密码的云服务器实例,选择实例操作菜单中的“更多”选项,然后选择“重置实例密码”。 在弹出的“重置实例密码”页面中,选择“重新设置密码”。 在新密码框中输入您想要设置的新密码,并在确认密码框中再次输入一次确认密码。 单击“确定”按钮,阿里云系…

    2023年9月16日
    68500
  • 柳州阿里云代理商:阿里云幕布几天寄到

    柳州阿里云代理商:阿里云幕布几天寄到 引言 随着云计算的快速发展,越来越多的企业和个人开始意识到将应用和数据存放在云上的重要性。作为全球领先的云计算服务提供商,阿里云以其强大的技术优势和丰富的产品线赢得了无数用户的信赖和选择。柳州阿里云代理商提供的阿里云幕布服务,更是让用户能够轻松获得高质量的云服务,而且时间非常快速。 一、阿里云的优势 1. 全球领先技术:…

    2024年1月8日
    68200
  • 阿里云盘的消息中心在哪儿

    信息中心在哪哪里可以找到 信息→选项→设置→SIM信息中心 信息中心在哪里?我的都好几天不能发了!但不知道怎么弄!现在有急事!求解! 三星手机设置短信服务中心号码操作方法:信息-更多(菜单键)-设置-(更多设置)-短信设置-短信中心(信息中心)-设置信息中心号码即可。信息中心号码需要联系网络运营商确认。注:电信卡没有信息中心号码的设置。 信息中心在哪里?(图…

    2023年8月26日
    72700
  • 阿里云企业邮箱在客户生命周期不同阶段的邮件营销策略和成功案例分享及启示?

    引言 在数字化时代,企业邮箱不仅是沟通的工具,更是推动企业营销的重要平台。阿里云企业邮箱凭借其稳定性和安全性,成为许多企业邮件营销的首选。本文将探讨阿里云企业邮箱在客户生命周期不同阶段的邮件营销策略,并分享成功案例及其带来的启示。 客户生命周期概述 客户生命周期通常分为潜在客户、初次购买客户、回购客户和忠诚客户几个阶段。每个阶段都有其特定的需求和行为模式,企…

    2024年11月1日
    81500

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/