2012-04-06 76 views
1

如果我在Safari中打開this url,iOS會檢查是否安裝了此應用程序。如果是 - 應用程序將被啓動,否則我將被重定向到AppStore應用程序。如果已安裝應用程序,請打開iTunes應用程序鏈接到UIWebView

是否有可能讓UIWebView做同樣的事情? 關鍵是系統檢查天氣安裝的應用程序,並有CFBundleURLTypes登記迴應。

編輯: 對不起,我認爲這個問題是錯的。實際上有另一個鏈接重定向到爲應用程序註冊的直接(本地)鏈接。我現在在

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

趕上這一點,並呼籲

[[UIApplication sharedApplication] openURL:url] 
+0

您可以隨時使用'UIApplication的openURL'以在Safari中打開這個網址。我不確定是否可以在應用程序內部執行操作(不使用Safari),但請注意Safari使用不同的權限(更高)運行,因此可能無法在標準沙箱內執行。 – kuba 2012-04-06 09:14:48

回答

3

如果UIApplication openURL你想要做什麼(打開App Store中的頁面,或者如果它的安裝打開應用程序,我想它會這麼做)你可以「偷」的URL通過以下方式在UIWebView的開幕活動:

// 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,則會調用默認處理程序,即鏈接將在Web視圖中打開。

1

您所描述的行爲不是它如何目前在iOS 5.1

作品點擊上ITMS鏈路的第二時間仍然會推出應用程序商店。

App Store on iOS 5.1


這可以幫助你檢測,如果一個應用程序已經安裝

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

相關問題