2013年9月18日水曜日

AndroidでWeb Browserで開いているWebページからアプリのインストール状態によってアプリもしくわGooglePlayを開く


1.とりあえず飛ばしちゃう手法

参照元

何やっているかというと、とりあえずアプリに飛ばしちゃってみて、
アプリがインストールされていなかったら、すぐ戻ってくるので、
ある一定時間以内に戻ってきたらGoogle Playに飛ばしちゃうっていう手法。


上2つは、document.locationにアプリURI設定して、ページを遷移させている。
下2つは、iframeのsrc属性にアプリURI設定して、ページを遷移させるのは回避している。

2. anchorのhref属性にAndroid Intentを設定する方法

AndroidのChromeが、vesrion25以降で、
iframeのsrc属性のURIからアプリを起動することができなくなったことにより、
上記のiframeを使った手法が、使えなくなったので、
Google Developersのページで紹介されている手法。

https://developers.google.com/chrome/mobile/docs/intents

何やっているかというと、下記3つを使って、

host: アプリ名など
scheme: お好きにどうぞ
package: アプリのpackage名

anchorのhref属性に、

<a href="intent://[host]#intent; scheme=[scheme];@package="[package];end" 説明文 </a>

と設定してあげると、よしなにやってくれる。


ただし、1. 2. ともにBrowserによって対応可否があるので、
まじめにやるならUAなどをみて使い分ける必要がある。

Browser毎の対応状況↓

1.とりあえず飛ばしちゃう手法

アプリインストール済みアプリ未インストール
Android標準Browserアプリ起動GooglePlay起動
ChromeGooglePlay起動GooglePlay起動
Firefoxアプリ起動GooglePlay起動
Operaアプリ起動GooglePlay起動

2. anchorのhref属性にAndroid Intentを設定する方法

アプリインストール済みアプリ未インストール
Android標準Browserアプリ起動GooglePlay起動
Chromeアプリ起動GooglePlay起動
Firefoxページ読み込みエラーページ読み込みエラー
Operaアプリ起動ページ読み込みエラー


2013年9月17日火曜日

Canvasのwidthとheight

Canvasのwidth属性とheight属性は明示的に値を指定しないと、
defaultで、それぞれwidthが300pxでheightが150pxになる。