index.html
2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!DOCTYPE html>
<html>
<head>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
For more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
This is a placeholder for base href that will be replaced by the value of
the `--base-href` argument provided to `flutter build`.
-->
<base href="$FLUTTER_BASE_HREF">
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="Pdf Printing Demo">
<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="Flutter PDF Demo">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
<title>Flutter PDF Demo</title>
<link rel="manifest" href="manifest.json">
<style type="text/css">
#loading {
position: absolute;
width: 400px;
height: 300px;
top: 50%;
left: 50%;
margin: -200px 0 0 -200px;
text-align: center;
font-family: sans-serif
}
#progress {
margin-top: 20px;
height: 10px;
background-color: #ebebeb;
}
#progress div {
background-color: #08a5d7;
height: 100%;
width: 0;
transition: width ease-out 300ms;
}
@media (prefers-color-scheme: dark) {
body {
background-color: black;
}
#loading {
color: white;
}
#progress {
background-color: #393939;
}
}
</style>
</head>
<body>
<div id="loading">
<img src="icons/Icon-192.png" width="192" height="192" alt="">
<h1>Flutter PDF Demo</h1>
<div id="progress">
<div></div>
</div>
</div>
<script>
{{flutter_js}}
{{flutter_build_config}}
function progress(value) {
let el = document.getElementById("progress");
if (el) el.firstElementChild.style.width = value + "%";
}
window.addEventListener('load', function (ev) {
progress(30);
});
window.addEventListener('flutter-first-frame', function () {
let el = document.getElementById("loading");
if (el) el.remove();
});
_flutter.loader.load({
onEntrypointLoaded: async function (engineInitializer) {
progress(60);
const appRunner = await engineInitializer.initializeEngine();
progress(100);
await new Promise(resolve => setTimeout(resolve, 200));
await appRunner.runApp();
}
});
</script>
</body>
</html>