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

相关推荐

  • 镇江阿里云代理商:阿里云esc产品介绍

    阿里云esc(Elasticsearch)是一款全托管的弹性搜索服务,为企业提供了简单易用的Elasticsearch集群,并提供了高可用、高性能、高扩展性的搜索与分析能力。下面是阿里云esc产品的介绍: 弹性伸缩:阿里云esc能够根据业务需求实时调整集群规模,支持自动的伸缩能力,使搜索能力与业务需求保持一致。 高可用性:esc通过多可用区部署、机器故障迁移…

    2023年12月26日
    12600
  • 物联网云平台项目申请

    如何搭建云平台,远程管理路由器 首先登陆路由器管理界面,通常我们可以在路由器背面的铭牌上找到“路由器管理地址”及“用户名”和“登陆密码”。在此以“腾达”路由器为例。打开浏览器,输入“http://192.168.0.1”及默认密码“admin”即可登陆路由器管理界面。接着点击“高级设置”按钮进行详细设置界面。切换至“系统工具”选项卡,点击“远程Web管理”项…

    2023年8月29日
    14100
  • 阿里云如何手动备份数据库

    如何将阿里云的mysql数据备份到本地 1.服务器上计划任务+MySQLdump备份数据到指定目录2.本地计划任务+scpy拷贝服务器上的备份 如何备份阿里云服务器数据到本地 如果是空间站点的,上传个phpmyadmin登陆后导出sql格式如果是服务器的,进入命令行mysqldump导出sql备份。 阿里云centos7服务器怎么备份mysql数据库 在服务…

    2023年8月29日
    14800
  • 阿里云数字人竖屏

    阿里云数字人竖屏是指阿里云推出的一种虚拟人形象,呈现在竖屏设备上的展示方式。阿里云数字人竖屏可以通过虚拟现实技术和人工智能技术,呈现出逼真的虚拟人形象,并且可以实时交互和对话。 阿里云数字人竖屏可以应用于多个领域,比如智能客服、教育培训等。在智能客服领域,数字人可以以虚拟人的形象展现在竖屏上,与用户进行自然语言对话,并提供相应的服务和解答。在教育培训领域,数…

    2023年8月26日
    11400
  • 重庆阿里云代理商:安全联盟个人网站认证

    安全联盟个人网站认证是阿里云提供的一种服务,其主要目的是通过一系列的安全检测和评估,来对网站的安全性进行评估和认证。一旦网站通过了认证,就会获得一个安全联盟的认证标识,可以提高网站的公信力和用户的信任度。 重庆有许多阿里云的代理商,提供相关的云服务。因为阿里云是国内领先的云服务提供商,所以很多企业选择通过阿里云来进行个人网站的认证。安全联盟个人网站认证可以提…

    2024年3月15日
    10400

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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