Comlink は iframe 間通信にも使える
https://github.com/GoogleChromeLabs/comlink
「Comlink makes WebWorkers enjoyable.」と書いてあるが、キモは postMessage の抽象化なので、iframe 間通信にも使用することができる。ただ、origin の取り扱いをする必要があるので、ラッパーが必要。といってもラッパーも Comlink.windowEndpoint() という形で Comlink 自身に用意されている。
iframe の親でも小でも、どちらでも Comlink.expose することができる (役割は反転できる)。ただ、その際に該当する window インスタンスが必要なので、iframe の親側では小フレームのロードを待たなければならない。
関連エントリー
- ブログシステムの HTML 生成を効率化 そろそろやることなくなったので minify などをやることにしました。 ただ、ブログシステムの出力の最後ほうでページごとに全体を mini...
- Gist に置いた JavaScript のベンチマークをとる デモ textContent innerText $().text() の比較ベンチ for of と単純な for の比較ベンチ ある要素...
- 現在の h2o.conf.yaml 今のこのサイトの h2o.conf.yaml です。HTTPS (443) のみを処理しています。HTTP (80) は nginx で受け...
- はてブ用ブックマークレット 現在の非表示ユーザの総数: javascript:(async()=>{alert((await(await fetch("http://b...
- Mojave で Android Emulator が起動しない emulator: Android emulator version 30.5.3.0 (build_id 7196367) (CL:N/A...
3秒でわかる Capacitor と Cordova の違い
実行コンテキストの違い
Cordova は file: で実行される。Capacitor は http: (Android) で実行される。
この違いは案外大きい。ESM (type="module" などでロードされる ECMAScript Modules) は application/javascript でなければ実行されないという厳格なルールがあるが、file:// ではすべてのファイルに mime-type が設定されないため、実行できない。回避する方法は結局のところ localhost にサーバを立てるぐらいしかない。この点だけでももう Cordova は厳しい。
アプリケーションの本体はどこに…
Cordova はビルド時に必要なソースコードを生成する。このため実際のビルドは必ず cordova コマンドを介す。
Capacitor はソースコードのスキャフォルドを最初に生成する。レポジトリには各プラットフォームの完全なプロジェクトが生成される。このため、実際のビルドは Android Studio や Xcode など、ネイティブな環境で行われる。
関連エントリー
- capacitor で Android 向けに minifyEnabled true Android では、アプリのサイズをできるだけ減らしたりするために、リリース前にアプリ全体のコードの最適化 (いわゆるツリーシェイキング)...
- cordova run android --device でエラー :processDebugResources FAILED FAILURE: Build failed with an exception....
- NanoVNA WebApp の Android アプリ化 Capacitor をつかって NanoVNA-Web-Client を Android アプリ化してみた。 https://play.go...
- Android SDK の各プラットフォームのビルドツールの一部を使いたいとき sdkmanager をダウンロードする Android Studio のダウンロードページから「コマンドラインツールのみ」を選んでダウンロ...
- Android O から広色域ディスプレイがサポートされる デベロッパープレビューのそのようなことが書いてあった。 Wide-gamut color for apps: Android develop...
