23
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CordovaからiOS, Androidのアプリを起動する方法

Posted at

はじめに

Cordovaを利用してスマホアプリの開発を行う際、自分のアプリから別のアプリを起動したり、もしインストールされていないのであればアプリのインストールを促すべく、ストアに遷移させたい場面があると思います。個人的に、困ったところだったので詳しい方法をまとめてみました。

プラグインの追加

以下のプラグインを追加する必要があります。
・InAppBrowser

以下のコマンドでプラグインを追加できます。

$ cordova plugin add org.apache.cordova.inappbrowser

InAppBrowserは、iOSでAppStoreを開く際の以下の記述で必要になります。

window.open("[App StoreのURL]"), '_system', 'location=yes');

遷移のためのJavaScript

iOSとAndroidのそれぞれで方法が異なるため、OSごとに命令を分岐させる必要があります。

openApp
if (isAndroid) 
    launchAndroidApp();
else 
    launchiPhoneApp();

Androidの場合

openAndroidApp
function launchAndroidApp() {
    window.plugins.webintent.startActivity({
        action: window.plugins.webintent.ACTION_VIEW,
        url: "[URLスキーム]://"},
        function() {},
        function() {
            console.log('Failed to open App');
            launchAndroidStore(appinfo);
            }
    );
}
function launchAndroidStore() {
    window.plugins.webintent.startActivity({
        action: window.plugins.webintent.ACTION_VIEW,
        url: "market://details?id=[package名]")},
        function() {},
        function() {
            console.log('Failed to open Store')
            }
    );
}

[URLスキーム] には、アプリ固有のURLを指定します。
URLスキームは一般に公開されていないことが多いため、以下のサイトを参考にするといいと思います。
http://www.thetheorier.com/index.html

[package名] については、Google Play StoreのURLのid以降となります。
(例) https://play.google.com/store/apps/details?id=net.muji.passport.android

例えば、「MUJI passport」アプリであれば、
[URLスキーム] = "mujipassport"
[package名] = "net.muji.passport.android"
となります。

iOSの場合

openiOSApp
function launchiPhoneApp() {
    document.location = "[URLスキーム]://";
    var start = Date.now();
    setTimeout(function(){
        var diff = Date.now() - start;

        if (diff < 400) {
            window.open("[App StoreのURL]"), '_system', 'location=yes');
        }
    }, 300);
}

[URLスキーム] は、iOSとAndroid共通のことが多いです。
例えば、「MUJI passport」アプリであれば、
[URLスキーム] = "mujipassport"
[App StoreのURL] = "https://itunes.apple.com/jp/app/muji-passport/id631993791?l=ja&ls=1&mt=8"
となります。

最後に

私が個人的に収集した情報ですので、間違いや分かりづらいところがあればコメントしてください。

参考情報

http://iphone-dev.g.hatena.ne.jp/laiso/20120625/1340615723
https://cordova.apache.org/docs/ja/3.1.0/cordova/inappbrowser/inappbrowser.html

23
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?