iOSのwebviewポンコツすぎワロたw

Swiftを使ってiOSアプリを作っていました。iOSアプリといっても、所謂webviewアプリで、webviewをペタッと貼り付けて、その中にhtmlとcssとjavascriptとphpで実装したウェブアプリを動かすという感じです。

 

htmlでリンク画像を複数生成して、横並びに羅列してあるリンク画像の中から一つをクリックしたら「本当にそのページへ飛んでもいいですか?」と確認ダイアログをアラートで出すという実装をしたのですが、ウェブブラウザでは出るのに、webviewでは出ねえ。選び間違えて間違ったリンク先に飛ばないようにするための、施策だったのですが、なんだか怪しげな雲行きになってまいりましたね。

 

 

最初、webviewじゃなくてWKWebViewを使えば出るかな?と根拠のない推測をしてWKWebViewを使って見たのですが、やっぱりでない。ウェブブラウザでは出るのに、WKWebViewでは出ねえ。ポンコツウ…orz笑

 

そのあと、これはパソコン専用みたいな感じで、iOSでは出ないのかも、と思ってSFSafariViewControllerを使ってサファリブラウザにてアラートを使ってみれば、まあ表示させることはできたのですが、アドレスバーを表示しちゃってたし、いらねーwwebviewでjsの確認ダイアログのためのアラートを表示させるのが割に怠いって新事実を発見してしまったわけです。

 

調べてみれば、アプリ側でJSアラートを取得してそのまま表示させるか、アプリでダイアログとして作り直す必要があるらしい。よくわからんけど、画面遷移をする時に、jsからswiftを呼び出して、swift側でアラートを表示させるようにしたり?なんだか学習コストが高そうだ!もっといい方法がないかなあ??

 

とうことで、オーバーレイ実装をすることにしました。流れとしては、リンク画像の羅列の中から一つを押す→オーバーレイを表示させる→オーバーレイの中に選んだ画像を表示させる→画像をタップしたら呼び出す。

 

まあ、そっちの方が最終的にリッチなUIになったので、よしとしますが、そんなオーバーレイですら、webviewでは動かず、WKWebViewを使わなければならなくなりました。webview使えねえw

 

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事