2012-02-29

AppStoreとAndroid Marketへのリンク

新しく作成するアプリの告知ために、以前につくったスマホ用Webページに、Android Marketへのリンクを追加する予定です。

しかし、最近のAndroid Marketは、新登場のアプリに冷たい気がします。以前は、新しいアプリを一覧表示するページがあって、そのページビュー数がなかなかのものだったと思うんですが、いまはAndroid Marketのつくりが変わって新しいアプリの紹介ページのページビューが減っているんじゃないかと思われるうえに、新しくリリースされたもののうち人気のあるものしか一覧に載らないみたいです。たぶん、人気があって品質の高そうなアプリをユーザに紹介するという考え方なんでしょうが、勝者がすべてを独占することになります。ここに食い込むのはなかなか厳しそうです。アプリの広告を打ってもコンバージョンがあまり見込めないので、リスクをしょって大量に広告を打つことでランキングに食い込むことを目指すという方針でないとたぶん採算がとれません。以前にリリースしたアプリで告知を行えば、余計なお金はかからないのでやってみます。こういうことはある意味、アプリに機能を付け足すことより大事かもしれないです。

WebページはjQuery Mobileでつくっていますが、サムネイルつきのリストを作成するには簡単なマークアップを行うだけです。これだけなら楽勝です。
しかし、リンク先がAndroid MarketだったりAppStoreだったりすると、ちょっと話がややこしくなります。ユーザーエージェントを見てリンク先を変えないと、ページを読み込めずにエラーになってしまうからです。WbViewやUIWebViewを組み込んだアプリでも、自前で処理を追加しないとページを読み込めずにエラーになります。どのブラウザからのアクセスをどこにリンクさせるか、という方針を決めないとわけが分からなくなりそうです。

まず、Android Marketには、Web版と、アプリ版(?)の二つがあります。
Web版はどんなブラウザからも表示できますが、アプリ版はAndroid端末でないと開けません。Android端末でWeb版アクセスするとアプリ版にリダイレクトされるという機能が以前はあったような気がするのですが、いまはないようです。Android端末からでも、デフォルトブラウザであればアプリ版へのリンクを開けますが、それ以外のブラウザやアプリからは開けない可能性もあります。

ということで、次のように場合分けして考えます。
  1. iPhone/iPad/iPodからのアクセスならばリンクを表示しない
  2. Androidマーケットへのリンクを開けそうな場合は、アプリ版のマーケットへのリンクを表示
  3. それ以外はWeb版へのリンクを表示
それほど複雑じゃなかったですね。

ちなみに、WbViewでAndroid Marketへのリンクを開くためには、WebViewClientの、shouldOverrideUrlLoading(WebView, String) をオーバーライドします。URL文字列が "market://" で始まるようであれば、次のようにしてIntentを投げます。FLAG_ACTIVITY_NEW_TASKなどのフラグは不要だと思います。
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlStr));
activity.startActivity(intent);
return true;

UIWebViewでAppStoreのリンクを開く場合も考え方は同じです。UIWebViewDelegateの、webView:shouldStartLoadWithRequest:navigationType: で、AppStoreへのリンクであるかを判定して
[[UIApplication sharedApplication] openURL:url];
とやります。AppStoreへのリンクであれば、@"http://itunes.apple.com/"か、@"http://phobos.apple.com" でURL文字列が始まるはずです。

0 件のコメント: