iOS detection
This commit is contained in:
parent
6a655c48d1
commit
3e77fdc4be
4 changed files with 33 additions and 13 deletions
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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
7
src/util/IosDetector.tsx
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
export function isIOS() {
|
||||||
|
if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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!);
|
||||||
changeTransport(
|
|
||||||
localStorage.getItem("transport") || "libcurl",
|
if (isIOS) {
|
||||||
localStorage.getItem("wispUrl") || wispUrl
|
console.log("iOS device detected. Bare will be used.");
|
||||||
);
|
changeTransport(
|
||||||
|
localStorage.getItem("transport") || "libcurl",
|
||||||
|
localStorage.getItem("wispUrl") || wispUrl
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
changeTransport(
|
||||||
|
localStorage.getItem("transport") || "bare",
|
||||||
|
localStorage.getItem("wispUrl") || wispUrl
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export { changeTransport, getTransport };
|
export { changeTransport, getTransport };
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue