湛江阿里云代理商: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

相关推荐

  • 深圳阿里云代理商:阿里云服务器ecs日志

    阿里云代理商是指在深圳地区负责代理和销售阿里云产品和服务的机构或个人。阿里云服务器ECS是阿里云提供的一种云服务器产品,用户可以通过ECS创建和管理虚拟机实例来托管自己的应用和服务。 日志是指记录系统运行状态和事件的文件,对于阿里云服务器ECS来说,日志可以包括系统日志、应用程序日志、网络日志等。通过查看和分析ECS日志,用户可以了解服务器的运行情况,及时发…

    2024年2月4日
    16100
  • 中山阿里云代理商:asp.net程序代

    理是指将ASP.NET程序部署到阿里云上,然后由中山阿里云代理商负责管理和维护该程序的运行环境。 中山阿里云代理商可以提供以下服务: 服务器租用和配置:根据客户需求,提供合适的阿里云服务器租赁选项,并进行服务器的配置和部署。 系统环境配置:包括操作系统、数据库、Web服务器等环境的安装和配置,保证ASP.NET程序能够正常运行。 网络安全设置:配置防火墙、安…

    2024年1月18日
    21600
  • 阿里云文件管理器

    阿里云 用的什么数据库管理工具 阿里云帮助中心为您提供关于云数据库RDS控制台的使用指导,将RDS上的数据库备份到云服务器中,将RDS上的数据库备份到云服务器中! 阿里云系统怎么查看文件属性。 如果要查看文件夹的内容, 您可以直接单击阿里云邮箱页面左侧导航栏上“文件夹”旁的“管理文件夹”(小扳手符号),在接下来的页面中,您可以看到所有文件夹名称、占用空间、以…

    2023年8月29日
    15900
  • 阿里云odps数据仓库

    阿里云ODPS(Open Data Processing Service)是一种大数据计算与存储云服务。它为用户提供了数据仓库的解决方案,可以帮助用户进行大规模数据分析和处理。 ODPS支持用户存储和处理PB级(1PB=1024TB)以上的结构化和半结构化数据,并提供了高可用性、高性能和弹性扩展的计算能力。用户可以使用SQL语言进行数据查询和分析,也可以通过…

    2023年10月22日
    16300
  • 宜宾阿里云代理商:apache 服务器访问http服务器配置

    Apache服务器是一种常用的Web服务器软件,用于在服务器上托管网站和应用程序。如果您需要配置Apache服务器来访问HTTP服务器,可以按照以下步骤进行操作: 打开Apache服务器的配置文件:在Linux系统中,Apache服务器的配置文件通常位于/etc/httpd/conf/httpd.conf。可以使用文本编辑器打开这个文件。 找到虚拟主机配置部…

    2024年2月26日
    19600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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