WEBページからアプリを起動する際に、アプリがインストールされていなかったときの挙動の制御

741 views
Skip to first unread message

takatomo tadehara

unread,
Aug 12, 2011, 3:25:04 AM8/12/11
to 日本Androidの会
はじめまして。蓼原と申します。


表題の件、googleや本メーリングリスト内を検索しても該当の問題の解決に至らなかったので質問させてください。

Androidのwebブラウザから、a タグのリンクで直接インストール済みアプリを起動させることができますが、
このときaタグで記述したアプリが存在しないと、ブラウザでNotFoundと認識されてしまいます。
しかし、今回の開発では、NotFoundではなく「このアプリはインストールされていません」など、アラートメッセージを表示させたいのです。

上記アラートの実現方法をご存知の方がおられましたら、ご教授願えないでしょうか。
なお、要件としては「WEBブラウザから特定のアプリを起動させる際に、アプリがインストールされていないときは、アラートを出したい」
ということであり、実装方法にこだわりはございません。
aタグでなくても、JavaScriptや、一度CGIを起動、経由するなど、別の手段でもかまいません。

よろしくお願い申し上げます。

yoshiyuki kanno

unread,
Aug 13, 2011, 9:36:59 PM8/13/11
to android-g...@googlegroups.com
菅野です。

興味があったので調べてみましたが、プリインストールのブラウザではこの振る舞いを変更することはできません。
#できたらセキュリティ的にまずいので、この仕様は当然といえば当然です

このため自前でWebViewを利用して独自のエラーハンドリングを実装したブラウザを用意して運用するか、
この仕様をあきらめるのが現実的な選択かと思います。

> aタグでなくても、JavaScriptや、一度CGIを起動、経由するなど、別の手段でもかまいません。

現実的ではないと思いますが、android端末のアプリインストール状況を監視して、サーバ側で管理対象のandroid端末群の
アプリインストール状態をデータベース化しておいて、サーバにこれらの情報を取得できるHTTP等のI/Fを持たせれば、
できない事はないかもしれませんが、コストに見合った対価が得られるとは思えません。

2011年8月12日16:25 takatomo tadehara <takatomo...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

--
Stoic Corp.
CEO Yoshiyuki Kanno
web: http://www.stoic.co.jp/
mailto:yoshiyu...@stoic.co.jp

蓼原貴智

unread,
Aug 14, 2011, 1:44:42 AM8/14/11
to android-g...@googlegroups.com
菅野様

ご回答ありがとうございます。
蓼原です。

下記、ご回答ありがとうございます。
本質問後も自分の方で調査継続致しましたが、やはり、
「端末のアプリインストール状況を、サーバー側に定期に送信するシステムを端末内部に持つ」
ぐらいしか解決策が浮かばず、
費用対効果に見合う開発にはならないだろうという認識です。

お時間を使っていただき、誠にありがとうございました。

2011/8/14 yoshiyuki kanno <neko...@gmail.com>:

杉谷 智宏(Vipper_The_NEET)

unread,
Aug 14, 2011, 7:24:45 PM8/14/11
to android-g...@googlegroups.com
杉谷です。手元で試したわけではないので,これができるかどうかは
未確認,という前提でお読みください。

サーバが404を出しているなら,サーバ側で404時にカスタムページに
飛ばすよう設定しておき,カスタムページ内でREFERERとUserAgentを
取得するCGIでも置いておいて,そこからカスタムページに追加で
「該当のアプリケーションは存在しませんでした」
と表示はできないでしょうか。

ローカルのWebViewがローカルのアプリケーションを探した結果404を
出しているとすれば,これはできないかもしれません。しかし固定文面
だとしたら,WebResourceResponseで「ローカルアプリ探して404」と
識別できるかもしれません。

その場合,さらにページを遷移させて,あるいはsetDataを使って,
404表示の内容に「そのアプリケーションはインストールされていません」
といった表示を行うことで解決にはならないでしょうか。

蓼原貴智

unread,
Aug 18, 2011, 8:51:55 AM8/18/11
to android-g...@googlegroups.com
杉谷様

お返事ありがとうございます。
蓼原です。

すっかり、404を出さないことを中心に考えていて、
404を出してから解決するという方法に考えが及びませんでした。

検討してみます。
誠にありがとうございました。
ある程度、検討、実装期間は掛かると思いますが、結果は報告させていただきます。


2011/8/15 杉谷 智宏(Vipper_The_NEET) <vipper....@gmail.com>:

Reply all
Reply to author
Forward
0 new messages