iOSのCustom URL Schemeを使い、
- Instagramのアプリがインストールされている → アプリに遷移
- Instagramのアプリがインストールされていない → ブラウザでインスタを開く
という挙動を実装してみました。
InstagramのCustom URL Schemeは公式ドキュメントを探しても見つからなかったのですが、いろいろと試したところ、iOSでアプリの起動に成功しました。
if (/iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase())) { location.href = 'instagram://user?username=ki_230'; } setTimeout(() => location.replace('https://www.instagram.com/ki_230/'), 200);
解説
- iOSでは起動に成功しました
- Androidでは起動できなかったのでif文の条件式から除きました
- location.replaceのタイミングを、適当に200msにしていますが、0sだとアプリインストール済みでもブラウザ版が開くことが稀にありました