Android应用中的WebView不会加载图像

问题描述 投票:0回答:1

所以我问之前到处都是,所以无法加载图像来工作

我有一个小应用程序,可以通过从服务器加载图像来检查服务器是否在线。它通过html和javascript运行]

HTML代码

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <meta name="description" content="Android Check" />
    <link href="https://fonts.googleapis.com/css?family=Quicksand&display=swap" rel="stylesheet">

    <title>Server Monitoring</title>

    <link rel="stylesheet" type="text/css" href="css/style.css" />
    <script src="main.js"></script>
</head>

<body>
    <div class=contents>
        <div style='margin:auto;'>
            <span class=content_text id=textbox style="font-family: 'Quicksand';">Server Monitoring</span>
        </div>
    </div>
         <div class="status">
           <p style="font-family: 'Quicksand';" id="check"><img src="servericon.png" height="60px" width="60px" align="middle"> Status: Checking Status...</p>
         </div>

</body>

</html>

Java代码


window.onload = function () {


function ifServerOnline(ifOnline, ifOffline)
{
    var img = document.body.appendChild(document.createElement("img"));
    img.onload = function()
    {
        ifOnline && ifOnline.constructor == Function && ifOnline();
    };
    img.onerror = function()
    {
        ifOffline && ifOffline.constructor == Function && ifOffline();
    };
    img.src = "http://myurl.com/img.jpg";
}

ifServerOnline(function()
{
    document.getElementById("check").innerHTML = "Status: Online!";
},
function ()
{
    document.getElementById("check").innerHTML = "Status: Offline!";
});
};

我到目前为止已经尝试过

package com.highgames.svmngm;

import androidx.appcompat.app.AppCompatActivity;

import android.webkit.WebSettings;
import android.webkit.WebView;
import android.os.Bundle;



public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView webView = (WebView)findViewById(R.id.webView);
        webView.loadUrl("file:///android_asset/index.html");
        WebSettings webSettings = webView.getSettings();
        webView.getSettings().setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setAppCacheEnabled(true);
        webSettings.setLoadsImagesAutomatically(true);
        webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

    }
}

我不知道为什么,但是它既不显示本地图像也不显示url图像,我也不知道如何使它工作

有人可以帮我吗?

android
1个回答
0
投票

您需要更改设置之前加载URL-即,移动webView.loadUrl("file:///android_asset/index.html");onCreate方法的结尾。

看来您的URL是http://(未加密)URL-您可能还需要enable cleartext HTTP traffic或在服务器上启用HTTPS。

© www.soinside.com 2019 - 2024. All rights reserved.