我必须澄清我知道如何从我们的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并运行。但它不适用于按钮点击。即使我在viewDidLoad
和viewWillAppear
尝试了代码,但它也无效。
=====编辑1 ====
我还没有找到解决方案。所以现在我已经在应用程序内部进行了Web视图,并在应用程序中打开链接。
答案 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>
答案 2 :(得分:0)
代码在Xcode 7,iOS 9.0,os x 10.11
中运行良好所以,我认为没有安全问题。