iOS detection

This commit is contained in:
rift 2024-03-11 18:29:04 -05:00
parent 6a655c48d1
commit 3e77fdc4be
4 changed files with 33 additions and 13 deletions

View file

@ -10,15 +10,6 @@
<script src="/uv/uv.config.js" defer></script> <script src="/uv/uv.config.js" defer></script>
<script src="/dynamic/dynamic.config.js" defer></script> <script src="/dynamic/dynamic.config.js" defer></script>
<script src="/localforage/localforage.min.js" defer></script> <script src="/localforage/localforage.min.js" defer></script>
<script defer>
if ("serviceWorker" in navigator) {
window.addEventListener("load", () => {
navigator.serviceWorker.register("/sw.js", {
scope: "/~/"
});
});
}
</script>
</head> </head>
<body style="margin: 0"> <body style="margin: 0">
<div id="app"></div> <div id="app"></div>

View file

@ -12,6 +12,18 @@ import "./style.css";
import "./i18n"; import "./i18n";
export default function Routes() { export default function Routes() {
if ("serviceWorker" in navigator) {
window.addEventListener("load", () => {
navigator.serviceWorker
.register("/sw.js", {
scope: "/~/"
})
.then(() => {
console.log("Service worker registered successfully");
});
});
}
return ( return (
<LocationProvider> <LocationProvider>
<Router> <Router>

7
src/util/IosDetector.tsx Normal file
View file

@ -0,0 +1,7 @@
export function isIOS() {
if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {
return true;
} else {
return false;
}
}

View file

@ -2,6 +2,7 @@ import {
SetTransport, SetTransport,
registerRemoteListener registerRemoteListener
} from "@mercuryworkshop/bare-mux"; } from "@mercuryworkshop/bare-mux";
import { isIOS } from "./IosDetector";
function changeTransport(transport: string, wispUrl: string) { function changeTransport(transport: string, wispUrl: string) {
switch (transport) { switch (transport) {
@ -44,9 +45,18 @@ const wispUrl =
location.host + location.host +
"/wisp/"; "/wisp/";
registerRemoteListener(navigator.serviceWorker.controller!); registerRemoteListener(navigator.serviceWorker.controller!);
if (isIOS) {
console.log("iOS device detected. Bare will be used.");
changeTransport( changeTransport(
localStorage.getItem("transport") || "libcurl", localStorage.getItem("transport") || "libcurl",
localStorage.getItem("wispUrl") || wispUrl localStorage.getItem("wispUrl") || wispUrl
); );
} else {
changeTransport(
localStorage.getItem("transport") || "bare",
localStorage.getItem("wispUrl") || wispUrl
);
}
export { changeTransport, getTransport }; export { changeTransport, getTransport };