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

相关推荐

  • 长春阿里云代理商:阿里云 access log

    阿里云为用户提供了一项功能,即可以记录和存储访问云服务的所有请求日志,这被称为阿里云的 access log(访问日志)。长春的阿里云代理商可以帮助用户配置和管理这个功能。 access log 提供了以下信息: 客户端的 IP 地址:请求的来源 IP 地址可以用于识别请求的实际来源,便于安全监控和访问控制。 请求时间:记录请求的时间戳,可以用于跟踪请求的执…

    2024年2月3日
    12700
  • 唐山阿里云代理商:阿里防护系统怎样

    阿里防护系统是由阿里云提供的一款网络安全防护服务,旨在为云服务器、网站、应用程序等提供全面的安全防护。 阿里防护系统主要具有以下特点: 全面的DDoS攻击防护:阿里防护系统可以及时发现、拦截和清洗各种类型的DDoS攻击,包括SYN Flood、UDP Flood、ICMP Flood等攻击方式,保障服务器和网站的正常运行。 支持强大的WAF防护:阿里防护系统…

    2023年12月14日
    16000
  • 阿里云的maven仓库是什么

    什么是Maven仓库 Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR,这节省了磁盘资源。  此外,由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等等,因此Maven项目可以方便的进行依赖版本管理。  …

    2023年8月28日
    15300
  • 厦门阿里云代理商:android 7.1.2 api

    对不起,我无法提供关于厦门阿里云代理商的具体信息。但是Android 7.1.2是一个操作系统版本,API指的是应用程序接口,用于开发应用程序。Android 7.1.2的API级别是25。这意味着开发者可以使用与该级别对应的所有API功能来开发Android应用程序。 Android 7.1.2 (API level 25) is a version of…

    2024年2月7日
    13600
  • 连云港阿里云代理商:阿里云虚机11.11活动

    阿里云作为中国领先的云计算服务提供商,每年11月11日都会推出一系列的优惠活动。作为连云港地区的阿里云代理商,我们会全程参与和支持阿里云虚机11.11活动。 在这个活动中,阿里云会推出各种优惠政策和特价产品,包括虚拟机实例、存储、数据库、网络等方面。作为代理商,我们将提供一对一的咨询服务,帮助客户选择适合他们需求的产品和优惠方案。 我们会提前了解并了解所有优…

    2023年12月20日
    17800

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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