android-app-with-storage/app/assets/index.html

111 lines
3.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta content="width=device-width,initial-scale=1.0" name="viewport">
</head>
<script>
function sleepit(ms) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(1);
}, ms);
});
}
function divMessage(html){
var div = document.createElement('div');
div.innerHTML=html;
document.body.appendChild(div);
div.scrollIntoView({ behavior: 'smooth'});
}
(async function webviewprogram(){
var port;
var resolves = [];
function setupMessage(){
return new Promise((resolve) => {
window.addEventListener('message',(e)=>{
if(e.data=="init-from-java" && ! port){
divMessage('INIT');
port = e.ports[0];
port.onmessage = function (ee) {
divMessage('AAport.onmessage='+ee.data);
var response = JSON.parse(ee.data);
divMessage('response.resolveIndex'+response.resolveIndex);//AAport.onmessage='+ee.data);
var localresolve = resolves[response.resolveIndex];
divMessage(typeof localresolve)
localresolve(response);
}
resolve()
}
divMessage('message='+e.data);
},true);
});
}
function doLs(path){
divMessage('doLs');
return new Promise((resolve) => {
divMessage('resolves.length'+resolves.length);
resolves.push(resolve);
divMessage('after push resolves.length'+resolves.length);
port.postMessage('{"function":"ls","path":"'+path+'","resolveIndex":"'+(resolves.length-1)+'"}');
});
}
function doCat(file){
return new Promise((resolve) => {
resolves.push(resolve);
port.postMessage('{"function":"cat","resolveIndex":"'+resolves.length+'"}');
});
}
window.addEventListener('load',()=>{
divMessage('JAVASCRIPT WORKS');
},false);
// await sleepit(2000);
// divMessage('awaited 2000');
// await sleepit(2000);
// divMessage('awaited again 2000');
await setupMessage();
divMessage('setup');
async function mapDoLs(path){
var reply = await doLs(path);
divMessage("reply.result.length"+reply.result.length);
reply.result.forEach((file)=>{
divMessage(file.name);//reply.result.length"+reply.result.length);
//var button
button = document.createElement("button");
button.addEventListener("click",()=>{
if(file.isDirectory)
mapDoLs(path+"/"+file.name);
},false);
//if(file.isDirectory){
//{
// button = document.createElement("button");
// button.addEventListener("click",()=>{
// mapDoLs(path+"/"+file.name);
// },false);
//} else {
// button = document.createElement("div");
//}
////a.href="#";
//////a.textContent="asdasdada"
button.textContent=file.name+ " " + file.size;
document.body.appendChild(button);
});
}
await mapDoLs("/DCIM");
divMessage("done");
// for(let file of DCIM.result){
// divMessage("filename");
//});
})();
</script>
<a href='https://html5test.co/'>https://html5test.co/</a>
<h1> this is html <h1>
<h2> this is a h2</h2>
<input type=text />
<img src='https://wald.alexmahr.de/images/bear.avif'>
<img src='https://wald.alexmahr.de/images/delphin.avif'>
</html>