0

Im using a WebView in Android studio and running it on a Physical Zebra TC52 Device which runs Android 11. In the HTML I have a button that onclick calls the getData function. The XMLHTTPRequest always returns the status 0 and the response Text is empty. I have tried this code on https://jsfiddle.net/ and it worked fine. I dont know what the issue is

function displayData(data) {
    document.getElementById('size_value').textContent = "10.5cm x 7cm";
    document.getElementById('colour_value').textContent = "Red";
    document.getElementById('material_value').textContent = "Metal";
    document.getElementById('send_date_value').textContent = "2022-12-25";
    document.getElementById('table').style.visibility = "visible";
}

function loadJSON(path, success) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
            document.getElementById('table').style.visibility = "visible";
            document.getElementById('status_value').textContent = xhr.status;
            document.getElementById('content_value').textContent = xhr.responseText;
            if (xhr.status === 200) {
                success(JSON.parse(xhr.responseText));
            }
        }
    };
    xhr.open('GET', path, true);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.send();
}

function getData() {
    //this will contain an API call for the data
    loadJSON("https://catfact.ninja/fact", displayData);
}

I have tried the code on https://jsfiddle.net/ and it worked. I would like to call an API and get the JSON Data in return in order to fill it into the HTML fields

Mellik
  • 235
  • 1
  • 9

1 Answers1

1

You need to add internet permission to you android app:

 <uses-permission android:name="android.permission.INTERNET" /> 

https://developer.android.com/training/basics/network-ops/connecting

Jan Pfeifer
  • 2,854
  • 25
  • 35