Skip to content

Instantly share code, notes, and snippets.

@ochi0218
Last active August 29, 2015 14:02
Show Gist options
  • Save ochi0218/def981ca9273207c087e to your computer and use it in GitHub Desktop.
Save ochi0218/def981ca9273207c087e to your computer and use it in GitHub Desktop.
iphoneとかAndroidとかからアプリ起動
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>アプリ起動</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
var IPHONE_STORE_URL = 'iphoneのストアURL';
var IPHONE_URL_SCHEME = 'iphoneのURLスキーム';
var ANDROID_STORE_URL = 'AndroidのストアURL';
var ANDROID_URL_SCHEME = 'AndroidのURLスキーム';
function lunchApp() {
function execute(appUrl, storeUrl) {
var iframe = document.createElement('iframe');
iframe.style.visibility = "hidden";
iframe.src = appUrl;
document.body.appendChild(iframe);
var time = (new Date()).getTime();
setTimeout(function(){
var now = (new Date()).getTime();
document.body.removeChild(iframe);
if((now-time)>400) {
// 元の画面に戻ってきた時にポップアップを抑制するため
return;
}
document.location = storeUrl;
}, 300);
}
var agent = navigator.userAgent;
if (agent.search(/iPhone|iPod|iPad/) != -1) {
// iPhone
// iPhoneだと、アプリ起動できないアラートが表示されてしまうので、うざい。
execute(IPHONE_URL_SCHEME, IPHONE_STORE_URL, true);
return false;
} else if (agent.search(/Android/) != -1 && agent.search(/Chrome/) != -1) {
// Chorme in Android
// https://developer.chrome.com/multidevice/android/intentsを参考。
$('#view-url').attr('href', 'intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end');
return true;
} else if (agent.search(/Android/) != -1) {
// Android
execute(ANDROID_URL_SCHEME, ANDROID_STORE_URL, false);
return false;
}
return true;
}
$(document).ready(function(event) {
$('#view-url').on('click', function(event) {
var ret = lunchApp(event);
if (!ret) { event.preventDefault(); }
});
});
</script>
</head>
<body>
<a href="http://google.co.jp/" id="view-url">リンクから起動</a>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment