2011-12-20 35 views
4

私のアプリケーションがインストールされている場合、そのアプリケーションを介して処理されるというURLを開発したいと思います。それがiPhoneでない場合、または私たちのアプリがインストールされていない場合、私はWebのURLにリダイレクトしたいです。ネイティブアプリまたはウェブサイトへのカスタムURLスキーム

基本的には、アプリストアのURLの仕事とまったく同じです。

+0

あなたのアプリがインストールされていない場合、どのようにそれを開いていくつかのURLにリダイレクトできますか? – Sarah

+0

私はOPが独自のプロトコルハンドラを実装したいと思っています – Cobby

+1

私はそれがアプリケーションストアのURLがどのように動作するかを正確に動作させたいと思っています。 http://itunes.apple.com/app/id468313085?mt=8はアプリストアを開き、IDを転送します(iPhoneで開いている場合)。 Web上で(iTunesがインストールされていない状態で)開かれた場合、Webに直接移動します。私は物事を思っている。私のiPhoneアプリ(インストールされている場合)にthismeanssomethingを渡すにはhttp://www.somedomain.com/thismeanssomethingが必要です。そうでない場合はウェブ版に直接移動してください。 – kgibbon

答えて

0

canOpenURLを使用することができます:アプリケーションが特定のURLリソースを開くかどうかを確認する方法。 Apple's Docの詳細

お手伝いします。

7

残念ながら、iOSのカスタムURLハンドラはそのようには機能しません。

あなたのアプリを開きますが、Safariでそのドメインを開くと自動的にアプリを起動するように、アプリ特定のドメイン名の指定されたハンドラにすることはできませんスキームをカスタムURLを定義することができます。

明確にするために、スキームは、HTTPのような、ビットドメイン名の前にある:ので、あなたはmyappに始まるURLのハンドラにアプリを作ることができます。たとえばを。明らかに、実際のURLは、myapp:で始まるものはありません。ただし、あなたのアプリで使用するために特別に設計したものは除きます。

残念ながら、これらのURLはあなたのアプリでのみ動作し、あなたのアプリがインストールされていない場合はSafariで開くことはできません。 iTunes、Googleマップ、Youtubeなどは、Appleが特別なケースとしてハードコードしているため、iPhoneでこのように動作しますが、このメカニズムをサードパーティのアプリケーションで利用できるようにはしていません。 、アプリのカスタムスキームを登録し、このチュートリアルに従うに

http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

あなたの代わりに行うことができるかもしれません何は、デバイスのユーザーエージェントを検出するために、JavaScriptを使用して、通常のウェブページを設定している場合されますそれはiPhoneが自動的にdocument.location = 'myapp:...'を使ってアプリのカスタムスキームurlにリダイレクトされます。あなたがカスタムURLスキームにリダイレクトしようとすると、アプリがインストールされていないとどうなるのか分かりません。それはあなたには理想的ではない何もしないかもしれないし、エラーを投げたり、空白のページに行くかもしれない。その場合、「ここをクリックしてアプリを起動するか、ここをクリックしてほとんどのサイトがそうしているように、アプリストアからダウンロードしてください。

6

通常のURLを使用して通常のウェブサイトを作成してから、yourapp:// dosomethingのようなURLにリダイレクトする必要があります。プロトコル "yourapp://"を処理するアプリケーション(アプリケーション)がない場合、SafariのようなWebブラウザはURLを無視する必要があります。

リダイレクトは、 PHPでリダイレクトでヘッダーを設定すると可能です。

<?php 
header('Location: yourapp://dosomething'); 
?> 

他のサーバースクリプト言語も可能です。また、「MobileSafari」と他のブラウザとの区別も含めて、そこに表示するだけです。

<?php 

/* detect Mobile Safari */ 

$browserAsString = $_SERVER['HTTP_USER_AGENT']; 

if (strstr($browserAsString, " AppleWebKit/") && strstr($browserAsString, " Mobile/")) 
{ 
    header('Location: yourapp://dosomething'); 
} 

?> 
+0

「yourapp」スキームがない場合Safariでエラーが表示される –

関連する問題