web-dev-qa-db-ja.com

iOSで独自のhttp URLスキームを処理できますか?

iOSのiTunes、App Store、およびYouTubeは、http:// ... URLスキームを明確に登録して、アプリを開きます。

自分のプロトコルだけでなく、誰でもそれを行うことができますか?

これをしたいのは、フェスティバル用のアプリを開発しているからです。 Webサイト上の特定のページへのリンクを「インターセプト」し、インストールされている場合は代わりにアプリを起動します。

今まで運がなかった

66
baswell

「http://」URLでこれを行う方法(および私が思うAppleとSpotifyが行うこと))

  1. カスタムURLスキームを登録します 他の回答が示しているように

  2. 実際のWebページを指すようにHTTP URLを設定します。

  3. IOS上にある場合、カスタムURLにリダイレクトするスクリプトをそのページに配置します。

たとえば、次のサンプルページでは、特定のユーザー用のTwitterアプリまたはTwitter Webサイトに移動します。このページは、Webを使用しているかiOSデバイスを使用しているかによって異なります。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Twitter</title>
</head>
<body>
    <script type="text/javascript">
        var username = document.location.search.substr(1);
        document.location.replace(
            "standalone" in window.navigator ?
            'Twitter:@'+username :              // iOS
            'http://Twitter.com/'+username);    // others
    </script>
</body>
</html>

ここで試してみてください: http://bl.ocks.org/d/3153819/?mckamey

61
mckamey

iOS 9は niversal Links をサポートします。これにより、iOSは標準のhttp:// URL(ホスト名に基づく)ユーザーがSafariを経由する必要はありません。

Webサーバーの構成が必要です(Webサイトが必要です)が、セットアップが完了すると、登録済みアプリはSafariの代わりにリンクを開きます。

IOS 9をお持ちでないユーザーの場合は、 スマートバナー を使用してエクスペリエンスを簡単にできます。

43
Marcus Adams

残念ながら、それができるとは思いません。 yourFestival://などの独自のカスタムスキームを登録し、外部のデータ(SMS、メール、その他のアプリ)からアプリにデータを渡すことができます。

これについてのブログ記事をここに書いた: カスタムスキームを使用して、iOSアプリ間でデータを渡す。

これがお役に立てば幸いです。

4
Marius Ciocanel

いいえ、カスタムスキームのみを登録できます。

そして、私はAppleこれをしている、または...

2
Eiko