我无法在iOS / Safari中打开数据网址。
NSString* stringUrl = @"data:text/html;base64,PGh0bWw+DQo8Ym9keT4NCjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPg0KZG9jdW1lbnQubG9jYXRpb249J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbSc7DQo8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4=";
NSURL* url = [NSURL URLWithString:stringUrl];
NSLog(@"Got url: %@", url);
const BOOL STATUS = [UIApplication.sharedApplication openURL:url];
NSLog(@"STATUS: %d", STATUS);
这应该是在iOS设备上打开Safari。结果页面将是:
<html>
<body>
<script language="JavaScript">
document.location='http://www.google.com';
</script>
</body>
</html>
然而,openURL失败,STATUS返回NO / 0。我们如何解决这个问题?
答案 0 :(得分:0)
您可以使用UIApplication的特殊方法来确定它是否可以打开您的网址
BOOL STATUS = [UIApplication.sharedApplication canOpenURL :url];
但是,文档中没有提及UIApplication是否能够使用“数据”方案打开URL:
“UIKit支持许多方案,包括http,https,tel,facetime和mailto方案。” - 来自UIApplication的文档。
您可以尝试在内部UIWebView浏览器中打开此URL,并查看UIWebView的这种方法:
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL;