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

相关推荐

  • 武汉阿里云代理商:阿里云公益

    阿里云公益是一个由阿里云提供的专门针对公益组织和非盈利机构的服务项目。 作为武汉阿里云代理商,我们与阿里云合作,为武汉地区的公益组织和非盈利机构提供阿里云公益的相关服务。 阿里云公益提供了一系列的免费或优惠的云计算产品和服务,包括云服务器、云数据库、云存储等,以帮助公益组织降低技术成本,提升运行效率。 我们作为阿里云代理商,将协助武汉地区的公益组织申请阿里云…

    2024年1月18日
    25800
  • 阿里云企业邮箱怎么使用

    使用阿里云企业邮箱,您可以按照以下步骤进行操作: 1.购买阿里云企业邮箱服务:登录阿里云官网,选择企业邮箱服务,点击购买并按照页面提示完成支付。 2.设置域名解析:登录您的阿里云域名管理平台,找到您需要使用企业邮箱的域名,设置MX记录解析,将MX记录指向阿里云企业邮箱服务器。 3.登录企业邮箱控制台:登录阿里云官网,找到企业邮箱控制台,点击进入。 4.添加邮…

    2023年8月12日
    32900
  • 阿里云国际站注册教程:asp.net 链接 oracle数据库

    注册教程: 首先,在你的电脑上安装.NET Framework。你可以从微软的官方网站下载。安装完成后,你就可以使用.NET框架开发ASP.NET应用。 打开你的浏览器,访问阿里云的官方网站。点击右上角的“免费注册”按钮,根据提示输入你的邮箱地址或手机号码,创建一个新的阿里云账号。 完成注册流程后,登录到你的阿里云账号。在控制台中,点击左侧的数据库服务,然后…

    2024年3月25日
    26900
  • 阿里云企业邮箱:哪里下载阿里云企业邮箱使用指南?

    阿里云企业邮箱使用指南下载方法 要获取阿里云企业邮箱的使用指南,用户可以直接访问阿里云官方网站,在搜索栏中输入“阿里云企业邮箱使用指南”或类似关键词进行查找。通常,阿里云会在其文档中心提供详细的操作手册、功能说明和常见问题解答。此外,用户还可以通过阿里云客服或官方论坛寻求帮助,确保能够充分利用企业邮箱的各项功能。 高效稳定的邮件收发服务 阿里云企业邮箱以其高…

    2025年7月22日
    12500
  • 阿里云创新中心临港

    阿里云创新中心值得去吗 值得去。阿里云创新中心常年招聘人才,薪资水平高,就业前景广阔桥没,节假日有福利,缴纳五险一金,是一家待遇非常好的公司。阿里云创新中心是西安浙文创集团旗下项目,由西安高新技术产业开发区管委会、阿里云计算有限公司及西安浙文创集团有限锋神公司共建,发挥高新区经济体系聚合力量,全面打造的云计算孵化双创载体标杆敏基纳。 山西阿里云创新中心是国企…

    2023年8月27日
    27500

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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