iPhoneからTeamSpiritを使いたい
会社から支給されたiPhoneからweb版のTeamSpirit(Salesforce)を使いたい、という声を聞きました。
どうやら Android では出退勤ボタンを操作できるのですが、iOSでは表示されないようなのです。
原因を探る
iframeが使用されている
PCでサイトを確認したところ、どうやら表示されないTeamSpritの画面は iframe
タグで表示されている様子。
別に webkit
で iframe
に対応していないわけではありません。
src 属性を調べる
iframe
に設定されているsrc
属性を確認すると、Salesforce
本体のドメインと、TeamSprit
の勤怠ボタンのドメインが異なることがわかりました。
これが手がかりになります。
webkitの仕様を確認
ios iframe 表示されない
と安易にググってもろくな情報が見つかりませんでした。
そんなときは英語で検索するのが早いです。
not working(動かん)
を入れると、StakOverflowの記事が引っかかりました。
Why is iframe blank only with iOS?
https://stackoverflow.com/questions/68250943/why-is-iframe-blank-only-with-ios
どうやらサードパーティへのトラッキングを制限するためにiOS13からデフォルトで防がれているようです。
ソース
ドメインが異なるのでiOSでサードパーティと判断され、TeamSpritの表示を制限しているようです。
対応方法
サイト超えトラッキング制御が原因なので、このオプションをオフにしてやればTeamSpritも表示できます。
設定→Safari→サイト超えトラッキングを防ぐ から変更できます。
このオプションオフにしてだいじょうぶ?
iOSはデフォルトでトラッキングされないようにオフにしていますが、逆に言うとPCやAndroidは許可している状態と考えられます。
であればオフにしても危険っていうことはないのかなと思いますが、自己責任で。
ちなみにオフってもiOSから警告が出ることもなかったです。
それでは良い勤怠ボタンぽちぽちライフを。