无法在 [UIApplication sharedApplication] 中使用 openURL 打开 url?

Posted

技术标签:

【中文标题】无法在 [UIApplication sharedApplication] 中使用 openURL 打开 url?【英文标题】:not able to open a url with openURL in [UIApplication sharedApplication]? 【发布时间】:2010-06-26 09:22:11 【问题描述】:

我正在尝试打开一个网址 (http://c22.smaato.net/oapi/lp.jsp;jsessionid=E253E547A55290CA553F493659433DBF.c22) 通过以下代码在一个按钮上

NSString *strs=[[NSString alloc]initWithFormat:@"%@",[linkArry objectAtIndex:0]];



    NSURL *urls = [NSURL URLWithString:strs];



    [[UIApplication sharedApplication] openURL:urls];

[linkArry objectAtIndex:0] 就是上面提到的链接。

但它没有响应?如果我输入类似 "http://www.google.com" 之类的内容,它会起作用..

还有其他方法可以打开这些网址吗??

【问题讨论】:

显示定义url的代码。 如果 RespLink 是一个字符串,为什么要这样转换成字符串呢? 更新了正确的代码 请显示定义linkArry的代码 【参考方案1】:

检查线路

NSURL *urls = [NSURL URLWithString:strs];

NSlog("urls : %@", urls); 并在控制台打印 url,如果你发现 urls 是 nil,

然后使用 NSUTF8StringEncoding 转义 strs。

strs = [strs stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *urls = [NSURL URLWithString:strs];

【讨论】:

【参考方案2】:

确保 url 是 NSURL 类型而不是 NSString

【讨论】:

以上是关于无法在 [UIApplication sharedApplication] 中使用 openURL 打开 url?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法为`UIApplication.shared`添加`if(iOSApplicationExtension)`条件

如何使用 UIApplication.shared.open 在 iOS 上选择性地打开其他应用程序

使用 UIApplication.shared.open 连续调用多个 URL - 仅先打开

在 iOS 扩展和应用程序之间使用 UIApplication.shared 共享 CocoaPod

Swift/iOS13 - UIApplication.shared.delegate.window?.rootViewController?.present() 来自自定义类

swift `UIApplication.shared.isNetworkActivityIndi​​catorVisible`管理クラス(延迟非対応)