78

カスタム スキーム (例: so://) を登録することで、iOS のアプリに直接リンクすることが可能であり、iTunes 経由でアプリストアのアプリにリンクすることも可能です。

多くの場合、理想的なフローは、アプリがインストールされている場合はアプリに、インストールされていない場合はストアにリダイレクトするリンクを提供することです。これは可能ですか?

明確にするために追加されたシナリオは、アプリケーションのグループに参加するように招待している電子メールからリンク (http) を iPhone で開いているというものです。ユーザーがそのデバイスにアプリをインストールしている場合は開く必要があります。それ以外の場合は、http リンクが iTunes にリダイレクトされます。

4

8 に答える 8

67

より簡単な答えは、次の JavaScript を使用してサーバー上にページを設定することだと思います。

(function() {
  var app = {
    launchApp: function() {
      window.location.replace("myapp://");
      this.timer = setTimeout(this.openWebApp, 1000);
    },

    openWebApp: function() {
      window.location.replace("http://itunesstorelink/");
    }
  };

  app.launchApp();
})();

これは基本的にアプリへのリダイレクトを試み、失敗した場合にアプリ ストアにリダイレクトするようにタイムアウトを設定します。

コードをもう少しスマートにして、ユーザー エージェントをチェックして、ユーザーが iOS ユーザー、Android ユーザー、または Web ユーザーのいずれであるかを確認し、適切にリダイレクトすることもできます。

于 2014-10-16T21:09:04.740 に答える
31

これを確認する方法はありません。ただし、優れた回避策があります。

アイデアは基本的に次のとおりです。

  1. アプリを初めて開くと、アプリ内からサーバー上の事前定義された URL へのモバイル サファリが開きます。
  2. その URL で、ユーザーのモバイル サファリに appInstalled のような Cookie を設定します
  3. 次に、登録済みのスキームを使用してユーザーをアプリに戻します (FB が SSO で行うのと同じです)。
  4. すべての電子メール リンクは Web サイトを指していますが、Web サイトで、ブラウザーがモバイル Safari であるかどうか、および appInstalled Cookie が存在するかどうかを確認します。
  5. ブラウザーがモバイル Safari でないか、Cookie が見つからない場合は、AppStore にリダイレクトするか、Web ページにとどまります。
  6. #4 の条件が true の場合、登録済みのスキームを使用してユーザーをアプリにリダイレクトします。
  7. アプリがユーザーによって削除されたためにカスタム URL スキームが失敗した場合、アプリストアへのフェールセーフ リダイレクトがあります。

最後の 2 つの手順は、この SO 投稿で説明されています

于 2012-12-27T02:09:15.610 に答える
8

ええ、とても簡単です。これには、開きたいアプリの URL スキームが plist で宣言されている必要があります。

//if you can open your app
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"yourapp://"]])
{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yourapp://"]];
}
else
{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"ituneappstorelink"]];
}
于 2012-12-27T01:03:49.300 に答える