我無法在iOS/Safari中打開數據URL:s。在Safari中打開「data:xxx」URL
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。我們如何解決這個問題?
你確定stringUrl是正確的? – GenieWanted
是的,它會生成一個NSURL而不是零。你可以試試'數據:text/html的; BASE64,PGh0bWw + DQo8Ym9keT4NCjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPg0KZG9jdW1lbnQubG9jYXRpb249J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbSc7DQo8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4 ='在任何瀏覽器,它會生成一個頁面,並搬遷到谷歌。 – Jonny
我設法做到了,但以一種相當冗長的方式......我必須在應用程序本身中實現一個Web服務器,等等...... – Jonny