Files
mih-project/mih_ui/web/index.html

298 lines
9.7 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<base href="/">
<!-- APP Description -->
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description"
content="MIH, the first Mzansi super app by Mzansi Innovation Hub. Streamline your life with Mzansi Profile, Wallet, Patient Manager, AI, Directory, Calendar, Calculator, &amp; secure MIH Access. Unify social, business &amp; personal tools.">
<!-- iOS meta tags & icons -->
<meta name="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="MIH">
<link rel="apple-touch-icon" href="icons/apple-touch-icon.png">
<!-- Favicon -->
<link rel="icon" href="favicon.ico">
<title>MIH App: Mzansi Innovation Hub - All-in-One Super App for Business &amp; Personal Life</title>
<link rel="manifest" href="manifest.json">
<!-- test stuff for speed -->
<link rel="preconnect" href="https://cdnjs.cloudflare.com">
<!-- <link rel="preload" href="flutter_bootstrap.js" as="script"> -->
<link rel="preload" href="main.dart.js" as="script">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<!-- Splash screen -->
<!-- <script src="install_pwa.js" defer=""></script> -->
<!-- Capture PWA install prompt event -->
<script>
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
deferredPrompt = e;
});
function promptInstall() {
deferredPrompt.prompt();
}
// Listen for app install event
window.addEventListener('appinstalled', () => {
deferredPrompt = null;
appInstalled();
});
// Track how PWA was launched (either from browser or as PWA)
function getLaunchMode() {
const isStandalone = window.matchMedia('(display-mode: standalone)').matches;
if (deferredPrompt) hasPrompt();
if (document.referrer.startsWith('android-app://')) {
appLaunchedAsTWA();
} else if (navigator.standalone || isStandalone) {
appLaunchedAsPWA();
} else {
window.appLaunchedInBrowser();
}
}
</script>
<!-- Splash screen -->
<!-- <script>
var dartPdfJsBaseUrl = "https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.2.146/";
</script> -->
<!--------------------->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "SoftwareApplication",
"name": "MIH App",
"alternateName": "Mzansi Innovation Hub App",
"applicationCategory": "ProductivityApplication",
"operatingSystem": ["Android", "iOS", "Web"],
"description": "MIH, the first super app of Mzansi, streamlines personal and business life with features like Mzansi Profile, Wallet, Patient Manager, AI, Directory, Calendar, Calculator, and MIH Access.",
"softwareRequirements": "Internet connection",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "ZAR"
},
"url": "https://app.mzansi-innovation-hub.co.za/",
"sameAs": [
"https://play.google.com/store/apps/details?id=za.co.mzansiinnovationhub.mih&hl=en_ZA",
"https://apps.apple.com/za/app/mih-app-mzansi-innovation-hub/id6743310890"
],
"featureList": [
"Mzansi Profile (Personal & Business)",
"Mzansi Wallet (Loyalty Cards)",
"Patient Manager (Appointment Scheduling)",
"Mzansi AI (Chat Assistant)",
"Mzansi Directory (People & Businesses)",
"Integrated Calendar",
"Calculator (Tips & Forex)",
"MIH Access (Profile Security Management)"
],
"publisher": {
"@type": "Organization",
"name": "Mzansi Innovation Hub"
}
}
</script>
<style id="splash-screen-style">
html {
height: 100%
}
body {
margin: 0;
min-height: 100%;
background-color: #3A4454;
background-size: 100% 100%;
}
.center {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.contain {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
}
.stretch {
display: block;
width: 100%;
height: 100%;
}
.cover {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.bottom {
position: absolute;
bottom: 0;
left: 50%;
-ms-transform: translate(-50%, 0);
transform: translate(-50%, 0);
}
.bottomLeft {
position: absolute;
bottom: 0;
left: 0;
}
.bottomRight {
position: absolute;
bottom: 0;
right: 0;
}
</style>
<script id="splash-screen-script">
function removeSplashFromWeb() {
document.getElementById("splash")?.remove();
document.getElementById("splash-branding")?.remove();
document.body.style.background = "transparent";
}
</script>
</head>
<body>
<picture id="splash-branding">
<source
srcset="splash/img/branding-1x.gif 1x, splash/img/branding-2x.gif 2x, splash/img/branding-3x.gif 3x, splash/img/branding-4x.gif 4x"
media="(prefers-color-scheme: light)">
<source
srcset="splash/img/branding-dark-1x.gif 1x, splash/img/branding-dark-2x.gif 2x, splash/img/branding-dark-3x.gif 3x, splash/img/branding-dark-4x.gif 4x"
media="(prefers-color-scheme: dark)">
<img class="bottom" aria-hidden="true" src="splash/img/branding-1x.gif" alt="">
</picture>
<picture id="splash">
<source
srcset="splash/img/light-1x.gif 1x, splash/img/light-2x.gif 2x, splash/img/light-3x.gif 3x, splash/img/light-4x.gif 4x"
media="(prefers-color-scheme: light)">
<source
srcset="splash/img/dark-1x.gif 1x, splash/img/dark-2x.gif 2x, splash/img/dark-3x.gif 3x, splash/img/dark-4x.gif 4x"
media="(prefers-color-scheme: dark)">
<img class="center" aria-hidden="true" src="splash/img/light-1x.gif" alt="">
</picture>
<div id="seo-content" style="display:none;">
<h1>Mzansi Innovation Hub (MIH) - Your All-in-One Super App for South Africa</h1>
<p>Tired of juggling multiple apps? Mzansi Innovation Hub (MIH) presents the first super app designed
specifically for the people and businesses of Mzansi. MIH is your unified online information technology
system to streamline both your personal and professional life, bridging the socio-economic divide during the
digital revolution.</p>
<h2>Key Features of the MIH Super App:</h2>
<ul>
<li><strong>Mzansi Profile:</strong> Effortlessly manage your professional profile, personal information,
and valuable business team details. Amplify your online presence.</li>
<li><strong>Mzansi Wallet:</strong> Go digital! Securely store all your loyalty cards in one convenient
place, reducing clutter.</li>
<li><strong>Patient Manager:</strong> Revolutionize medical practices with seamless patient appointment
scheduling and efficient data management.</li>
<li><strong>Mzansi AI:</strong> Get instant support and quick answers with our friendly AI assistant,
available 24/7.</li>
<li></li>
<li><strong>Mzansi Directory:</strong> Discover and connect with people and businesses across Mzansi.</li>
<li><strong>Calendar:</strong> Stay perfectly organized with an integrated calendar for all your personal
and business appointments.</li>
<li><strong>Calculator:</strong> Perform quick calculations, including tips and forex, right within the app.
</li>
<li><strong>MIH Access:</strong> Take control of your security. Easily manage and view who has access to
your profile and data.</li>
</ul>
<p>MIH simplifies daily tasks, reduces costs, and helps you manage your professional profile, team, and
appointments all from a single, user-friendly platform. It's the essential mobile app for business owners
and individuals looking to streamline their online presence in South Africa.</p>
<h3>Download the MIH Super App Today!</h3>
<p>Available for Android and iOS. Search "Mzansi Innovation Hub" or "MIH App" on your app store.</p>
</div>
<script>
// Hide the SEO content once the Flutter app starts to load
window.addEventListener('load', function () {
const seoContent = document.getElementById('seo-content');
if (seoContent) {
seoContent.style.display = 'none'; // Or 'hidden'
}
});
// You might need to adjust this script to ensure it hides *after* the Flutter app's visual elements are fully rendered.
// A more robust solution might involve listening for a Flutter-specific event when the app is ready.
</script>
<script>
window.addEventListener("load", function (e) {
document.addEventListener("focusin", function (event) {
if (event.target.tagName === "INPUT" || event.target.tagName === "TEXTAREA") {
event.target.setAttribute("spellcheck", "true");
}
});
});
</script>
<script src="flutter_bootstrap.js" async></script>
<script>
var serviceWorkerVersion = '{{flutter_service_worker_version}}';
var scriptLoaded = false;
// We keep your logic to monitor the service worker for immediate updates
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
var serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion.replace(/"/g, '');
navigator.serviceWorker.register(serviceWorkerUrl).then((reg) => {
reg.addEventListener('updatefound', () => {
const newWorker = reg.installing;
newWorker.addEventListener('statechange', () => {
if (newWorker.state === 'activated') {
// This fulfills your requirement for immediate update
if (confirm('A new version of MIH is available. Refresh now to update?')) {
window.location.reload();
}
}
});
});
});
});
}
</script>
<script id="pdfjs-lib" src="//cdnjs.cloudflare.com/ajax/libs/pdf.js/3.2.146/pdf.min.js" defer=""></script>
<script id="pdfjs-worker" type="text/javascript"
src="//cdnjs.cloudflare.com/ajax/libs/pdf.js/3.2.146/pdf.worker.min.js" defer=""></script>
<!--------------------->
</body><!-- File Picker & PDF viewer -->
</html>