298 lines
9.7 KiB
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, & secure MIH Access. Unify social, business & 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 & 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>
|