2012-04-06 9 views
1

Safariでthis urlを開くと、このアプリがインストールされているかどうかが確認されます。そうであれば、アプリが起動されます。それ以外の場合はAppStoreアプリにリダイレクトされます。アプリが既にインストールされている場合、UIWebViewのiTunesリンクを開く

同じことをUIWebViewにすることはできますか? 重要なことは、アプリがインストールされている天気がシステムチェックで、CFBundleURLTypesが登録されていることです。

EDIT: 私は問題を特定するのに間違っていました。実際には、アプリに登録されている直接(ローカル)リンクにリダイレクトする別のリンクがあります。私は

-(BOOL) webView:(UIWebView *)inWeb 
    shouldStartLoadWithRequest:(NSURLRequest *)inRequest 
    navigationType:(UIWebViewNavigationType)inType 

で、今これをキャッチし、UIApplication openURLは、あなたが望むない場合

[[UIApplication sharedApplication] openURL:url] 
+0

をインストールした場合に検出して、あなたを助けるかもしれません。アプリ内で(Safariなしで)実行できるかどうかはわかりませんが、Safariは異なる特権(高い)で動作するため、標準のサンドボックス内では実行できない可能性があります。 – kuba

答えて

3

を呼び出す(App Storeでアプリのページを開くか、それがインストールされます場合は、アプリを開いて、私はそれはそうだろうと思います)あなたは、次の方法でのUIWebView内のURLオープニングイベントを「盗む」ことができます。

// myWebView will be your initialized web view 
[myWebView setDelegate:self]; 

// implement this method in the owning class 
-(BOOL) webView:(UIWebView *)inWeb 
shouldStartLoadWithRequest:(NSURLRequest *)inRequest 
      navigationType:(UIWebViewNavigationType)inType 
{ 
    if (inType == UIWebViewNavigationTypeLinkClicked) { 
     [[UIApplication sharedApplication] openURL:[inRequest URL]]; 
     return NO; 
    } 

    return YES; 
} 

これはすべてリンクがサファでWeb表示でクリック開きますri/App Store /デフォルトの処理アプリ。この方法でiTunesリンクのみを開きたい場合は、この方法でURL解析を実装し、そのリンクだけをリダイレクトすることができます。 YESを返すと、デフォルトのハンドラが呼び出されます。つまり、リンクはウェブビューで開きます。

1

あなたが記述行動は、それが現在ITMSをクリックiOSの5.1

にどのように動作するかではないが二度目のリンクはまだApp Storeに起動します。

App Store on iOS 5.1


これは、アプリは、すでにあなたは常にSafariでこのURLを開くために、 `のUIApplication openURL`を使用することができます

https://stackoverflow.com/a/5746603/515359

関連する問題