Open5

nest: mac版Safariでpopupが出ねぇ問題

okuokuokuoku

とりあえずWebRTCシグナリングはできるようになったけど、mac版のSafariだとpopup windowが出ないということに気付いた。

この小さいのをクリックすると以降は出るようになる。なので最悪コレでOKではある。。

okuokuokuoku

Chromeで試す

Firefoxでは問題なく出るのを確認しているので、Chromeも試してみる。

macでも .exe なのか。。(大嘘)

Chromeでは特に追加の許可をせずに接続できた。Firefoxと同じ挙動。

okuokuokuoku

普通の a タグを使うことにした

https://github.com/okuoku/fnest-proto/commit/14cc5d3311ee3724a72c0aadcd2988c1f5ec2ea2

今までボタンの click ハンドラで window.open していたのを、普通に a タグを挿入して、タグの href を書き換える方式に変更してみると意図した挙動になった。

Set Device KeyStart Session の順にタップするとデバイスとの間にWebRTCセッションが張られる。

2タッチに増えちゃうけど、FirefoxやChromeでも期待通り動くので、まぁこれで。。

データの受け渡しは専用のattribute( "_session" )を setAttribute / getAttribute することで行っている。

okuokuokuoku

close

window.closewindow.open した物にしか使えないという記述がMDNにある。

https://developer.mozilla.org/ja/docs/Web/API/Window/close

このメソッドが許可されるのは、window.open() メソッドを用いたスクリプトにより開かれたウィンドウに対する呼び出しのみです。

が、実際は opener を持っているWindowは閉じられるので、事前に <a rel="opener"> してあれば問題なく使える。一応、モバイル版のChrome(Android)とSafari (iOS 17)で期待通り動作することを確認した。

https://github.com/okuoku/fnest-proto/commit/d1b7a080934632e0af9965a1ab2ce1ab0d5e92de