openURL没有从应用程序打开safari

时间:2015-10-13 11:37:13

标签: ios safari uiapplication

我必须澄清我知道如何从我们的iOS应用程序中打开网址,例如

[[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但它不会重定向到safari。我已经检查了模拟器和设备,但结果是一样的。请帮忙。提前致谢。

====编辑=======

这可能有助于了解有关应用的更多信息。

它是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");
        }
}

如果我将此代码放在app delegate didFinishLaunchingWithOptions方法中,那么它会打开safari并运行。但它不适用于按钮点击。即使我在viewDidLoadviewWillAppear尝试了代码,但它也无效。

=====编辑1 ====

我还没有找到解决方案。所以现在我已经在应用程序内部进行了Web视图,并在应用程序中打开链接。

3 个答案:

答案 0 :(得分:1)

这是iOS 9的新安全功能。您需要在plist中添加url。

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

答案 1 :(得分:1)

希望这可以帮助你:

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

enter image description here

答案 2 :(得分:0)

代码在Xcode 7,iOS 9.0,os x 10.11

中运行良好

所以,我认为没有安全问题。