• 日本語
  • English
  • 中文
MENU
CREATE A PLATFORM FOR DIVERSITY
Web, Game, App, Illustration
https://monstar-lab.com/
iOS
2014/09/16
iOS用WEBアプリで出来ないこと

iOS上で動作するサービスを作成しようと思った時、下記のような選択肢があるかと思います。
– ネイティブアプリ(Objective-C で作るようなもの)
– WEBアプリ(HTML / JavaScript で作るようなもの)
– ハイブリッドアプリ(Objective-C で作った中に、HTML / JavaScriptで作った画面を入れるようなもの)

 

今回、WEBアプリを作った際に、ネイティブだったら出来るのに、と思ったことを中心にまとめてみます。(Androidでも、大体同じことが言えると思います。)

PUSH通知

ユーザの呼び戻しには、PUSH通知が有効化と思いますが、ブラウザアプリでは実現できません。といったものを利用し、うまくユーザを呼び戻す必要があると思います。

クリップボードの利用

PCのブラウザでは、「クリップボードにコピーする」ボタンを見たことがあるかと思います。
大抵、 Flash を利用して実装されているので、iOSでは動作しません。
input タグを用意しておき、そこをタップした時に、全選択→iOS標準の「コピー」が表示されるという風にする、というのが妥協案かと思います。

消えない(消せない)情報を保存する

ネイティブアプリなら、KeyChain が使えます。
これに入れておけば、アンインストールしても消えません。
ブラウザアプリの場合、データの保存場所としては、Cookie, localstorage などがありますが、
「Cookieとデータを消去」で簡単に消せてしまいます。
消されると困る情報は、サーバに保存することになりますが、その情報と付き合わせるためにユーザ認証が必要になります。

Safariだけで動作させる(他のアプリ内で開かれた場合の表示を変えるなど)

ブラウザアプリの場合、Safari 以外で動作する可能性があります。
例えば、Chrome, Operaといったブラウザアプリ、Facebook, TwitterといったSNSアプリなど。
User Agent である程度判定できますが、ホワイトリストにしろブラックリストにしろ、漏れや誤認識は発生すると思います。
(IEのUser Agentから、IE11になってMSIEが無くなるといったような)
「別のアプリで開く」のようなボタンが提供されているアプリもあるので、そこに誘導するように表示することも出来るかもしれないですが、そもそもアプリ側で提供されていないと、Safariで表示させることは難しくなってしまいます。
最悪、URLを表示・コピー出来るようにしておいて、ユーザ操作によってSafariで見てもらうことになるかと思います。

フルスクリーン表示

可視領域を広げる、没入感を与える、ネイティブっぽく見せるといった効果がある、フルスクリーン表示ですが、自動的にフルスクリーン表示にすることは出来ません。
meta タグなどを利用し、「ホーム画面に追加」を行ってもらい、そこから起動してもらえば、可能ですが、「ホーム画面に追加」は、あまり一般ユーザは認識していないのではないかと思います。


アプリがインストールされているかを確認

– アプリがインストールされていたら、アプリ起動ボタンを表示
– アプリがインストールされていなかったら、アプリダウンロードボタンを表示
といったことは難しそうです。

 

URLスキームからのスマフォアプリ起動のフォールバック http://havelog.ayumusato.com/develop/javascript/e564-url-scheme-fallback.html

 

こちらにあるように、URLスキームで起動してみて、画面が切り替わって無ければ、ストアへ飛ばす。という動きなら出来るようです。
ただし、「ページを開けません」ダイアログが出てしまったりするようです。

Webとネイティブの両対応していて、ネイティブも紹介したいだけなら、App Bannerを使えばいいと思います。

まとめ

いろいろ制約はありますが、WEBアプリで開発することでの利点もあります。

– 好きなタイミングで公開できる(審査時間を考慮しなくて良い)
– 全てのユーザに同じ動作環境を提供出来る(バージョンアップしないユーザを考慮しなくて良い)
– Objective-Cを書かなくてもよい

のは、魅力的だと思います。

iOS上でサービスを作成する際には、ネイティブ / WEB双方の特徴を把握した上で、そのアプリに合ったものを選択することが必要だと思います。

Archives