117 lines
3.7 KiB
HTML
117 lines
3.7 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(){
|
|
divMessage("starting SetupMessage()");
|
|
try{
|
|
|
|
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);
|
|
});
|
|
} catch(error){
|
|
divMessage('setuperror');
|
|
divMessage('setuperror='+error.toString());
|
|
}
|
|
}
|
|
function doTest(){
|
|
divMessage('doTest');
|
|
return new Promise((resolve) => {
|
|
divMessage('resolves.length'+resolves.length);
|
|
resolves.push(resolve);
|
|
divMessage('after push resolves.length'+resolves.length);
|
|
port.postMessage('{"function":"test","resolveIndex":"'+(resolves.length-1)+'"}');
|
|
});
|
|
}
|
|
// 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+'"}');
|
|
// });
|
|
// }
|
|
function doLoadedWait(){
|
|
return new Promise((resolve) => {
|
|
window.addEventListener('load',()=>{
|
|
resolve();
|
|
},false);
|
|
});
|
|
}
|
|
window.addEventListener('load',()=>{
|
|
divMessage('JAVASCRIPT WORKS');
|
|
},false);
|
|
await doLoadedWait();
|
|
// await sleepit(2000);
|
|
// divMessage('awaited 2000');
|
|
// await sleepit(2000);
|
|
// divMessage('awaited again 2000');
|
|
// divMessage("before.setup 1");
|
|
divMessage('before.setup');
|
|
await setupMessage();
|
|
divMessage('setup');
|
|
async function mapDoTest(){
|
|
divMessage("doTest ");
|
|
var reply = await doTest();
|
|
divMessage("reply was",JSON.stringify(reply));
|
|
// divMessage("reply.result.length"+reply.result.length);
|
|
// reply.result.forEach((info)=>{
|
|
// divMessage(JSON.stringify(info));
|
|
// // divMessage(info.info);//reply.result.length"+reply.result.length);
|
|
// });
|
|
}
|
|
await mapDoTest();
|
|
divMessage("done");
|
|
// for(let file of DCIM.result){
|
|
// divMessage("filename");
|
|
// });
|
|
})();
|
|
</script>
|
|
<body>
|
|
<input type=text />
|
|
</body>
|
|
</html>
|