何故 Safari は厄介かと,その対処法一覧
1465 ワード
背景
- iOS(iPhoneOS/iPadOS)では,AppleWebKit つまり Safari に基づいたブラウザしか認められていない.
- これは iOS 14 でデフォルトのブラウザが変更可能になっても変わらず.
- そしてこれらの端末を使用している個体は地球上に大変多い.
- 従って,Safari に対応していない Web アプリは iPhone の Chrome/Firefox 等でも動かないことになり,使いものにならない.
Safari の何が駄目なの?
Safari は例えば,以下の技術に対応していません:
- SharedWorker
- WebComponent Custom Element の継承
- BroadcastChannel
然も,これらの不備への開発チームの対応をみるに,あるいは Google が WebKit から離脱した経緯も考えるに,これからも彼らの技術的限界ないし問題からサポートが限定を受ける技術は多かろうと予想します.あゝ大変.
我〻は如何にすべきか
CustomElements の継承
これはあきらめて,統べて既存要素から継承しない独自の要素で構成するしかありません.
BroadcastChannel
これは,Web Worker 内から使用しないのであれば,LocalStorage 及び StorageEvent で簡単にそれっぽいものを作ることができます.
SharedWorker
WebSocket 接続を維持したり,共有の重い計算をするのにはとても重宝する機能ですが,限定的にエミュレートするしかありません:
- 最初に開いたタブなりで Dedicated Worker を走らせる.
- 上記の偽 BroadcastChannel でタブ間通信を行い,Worker が走るタブが消えたら別の誰かが開き直す.
最後に
他にも Safari で困ることがあったり,解決法を見つけたりした方は,Twitter @masora_m まで仰ってください.
Author And Source
この問題について(何故 Safari は厄介かと,その対処法一覧), 我々は、より多くの情報をここで見つけました https://qiita.com/metastable-void/items/76222ab564d67954dfdd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .