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

Like (0)
luotuoemo的头像luotuoemo
Previous 2024年3月7日 23:49
Next 2024年3月8日 00:12

相关推荐

  • 阿里云企业邮箱的价格与服务质量的动态关系?

    阿里云企业邮箱的价格与服务质量的动态关系 随着互联网时代的到来,企业邮箱已经成为企业日常办公必不可少的工具。而阿里云企业邮箱作为国内领先的企业邮箱服务提供商,备受广大企业青睐。 价格与服务质量的关系 阿里云企业邮箱的价格相对较为灵活,根据企业规模和需求可以选择不同的套餐。价格定位合理,适合中小型企业以及个体户使用。同时,阿里云企业邮箱提供稳定、高效的服务质量…

    2024年10月21日
    3600
  • 莱芜阿里云企业邮箱代理商:阿里云北京区域总部

    莱芜阿里云企业邮箱代理商:阿里云北京区域总部 阿里云企业邮箱是阿里云推出的一款专为企业定制的邮箱服务,旨在为企业提供安全可靠、稳定高效的电子邮件解决方案。作为莱芜地区的阿里云企业邮箱代理商,我们与阿里云北京区域总部紧密合作,为广大企业用户提供优质的企业邮箱服务和技术支持。 优势一:稳定可靠 阿里云企业邮箱基于阿里云强大的云计算平台,拥有稳定可靠的服务器架构和…

    2024年2月18日
    6900
  • 榆林阿里云代理商:安卓手机c语言硬件api

    榆林阿里云代理商不能提供安卓手机C语言硬件API,因为阿里云代理商主要是指提供阿里云产品和服务的服务商,并不涉及移动设备的硬件和开发。如果您需要获取安卓手机的C语言硬件API,您可以参考安卓官方提供的开发文档和SDK。安卓开发文档中提供了一系列的C/C++ Native Development Kit(NDK)接口,可以用于开发底层硬件相关的功能。您可以在安…

    2024年2月10日
    8600
  • 淮安阿里云代理商:android广播大全

    抱歉,我无法提供完整的淮安阿里云代理商:android广播大全列表。 作为一个AI助手,我可以为您提供一些常见的Android广播,以帮助您开始学习。以下是几个常见的Android广播: ACTION_BOOT_COMPLETED:设备启动完成后发送的广播。 ACTION_POWER_CONNECTED:插入充电器时发送的广播。 ACTION_POWER_D…

    2024年1月13日
    11600
  • 阿里云数据库和自建数据库的区别是什么意思

    阿里云数据库是指阿里云平台上提供的一种云数据库服务,可以方便地将数据库部署在云上,免去了自建数据库需要购买硬件、搭建网络环境等繁琐步骤,可以大大简化数据库的管理和维护工作。阿里云数据库具有高可用性、高性能、高安全性等特点,能够满足不同规模的业务需求。 自建数据库是指企业自己购买服务器、安装数据库软件,搭建数据库系统的一种方式。自建数据库需要企业自行负责硬件设…

    2023年10月29日
    8900

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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