2015-10-13 60 views
1

我要澄清,我知道如何從我們的iOS應用程序打開網址打開Safari瀏覽器,像的OpenURL不是從應用

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: urlAddress]]; 

在我的代碼我也做了相同的。這是一個老的應用程序,我現在必須升級這個應用程序。我現在正在開發Xcode 7。它有一個代碼來從應用程序打開我的網站。爲此,我爲我的網站編碼如下。我也嘗試了所有其他主要網站的網址,但它仍然沒有打開Safari瀏覽器打開此頁面。

NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
    if([[UIApplication sharedApplication] canOpenURL:url]) { 
     NSLog(@"OK"); 
     [[UIApplication sharedApplication] openURL:url]; 
    } else { 
     NSLog(@"Failed to open url: http://www.google.com"); 
    } 

我已經印它,它去狀況canOpenURL:url和它打印OK,但它不會重定向到野生動物園。我已經在模擬器中進行了檢查,並且在設備中進行了檢查,但結果相同。請幫忙。提前致謝。

====編輯=======

這可能是有關程序有助於更多的信息。

這是tabbarcontroller應用程序和導航欄顯示所有視圖。

上面的代碼是在按鈕動作

-(IBAction)onSiteClick:(id)sender 
{ 
     NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
     if([[UIApplication sharedApplication] canOpenURL:url]) { 
      NSLog(@"OK"); 
      [[UIApplication sharedApplication] openURL:url]; 
     } else { 
      NSLog(@"Failed to open url: http://www.google.com"); 
     } 
} 

如果我在應用程序委託把這段代碼didFinishLaunchingWithOptions方法然後打開Safari和作品。但它不能用於按鈕點擊。即使我嘗試過viewDidLoadviewWillAppear中的代碼,那麼它也不起作用。

=====編輯1 ====

我還沒有找到這個解決方案還沒有。所以現在我已經在應用程序內部進行了Web視圖並打開了應用程序中的鏈接。

+1

http://awkwardhare.com/post/121196006730/quick-take-on-ios-9-url-scheme-changes – Igor

+0

@Max你的代碼對我來說工作正常..希望可能是你的問題是你的網站網址字符串? – Sujania

+0

@Sujania這就是爲什麼我困惑了很多。因爲我已將這些代碼用於許多應用程序,並且我還通過設置LSApplicationQueriesSchemes和NSAppTransportSecurity更新了一些應用程序以允許http連接。 – Max

回答

1

這是iOS 9的一項新的安全功能,您需要在plist中添加url。

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>http://www.google.com</string> 
</array> 
+0

我已經嘗試過,但仍然是同樣的問題。我認爲這是自定義網址從我們的應用程序打開另一個應用程序。 – Max

1

希望這有助於你:

<key>NSAppTransportSecurity</key> 
    <dict> 
    <!--Include to allow all connections --> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
    </dict> 

enter image description here

+0

我已經完成了我的所有Web API調用。 – Max

0

代碼在Xcode 7,iOS的9.0做工精細,OS X 10.11

所以,我覺得沒有問題與安全。

相關問題