繁体   English   中英

如何检测网页是否在iPhone的嵌入式浏览器中运行?

[英]How to detect whether webpage is running in iPhone's embeded browser?

我有一个使用自定义协议处理程序打开应用程序的网页。 一个链接到iTunes Store应用,供人们下载Picup应用,另一个链接到fileupload://,以打开Picup应用。

当页面加载到嵌入在另一个应用程序(例如1Step Scanner条形码扫描器)中的Safari中时,导航到这些自定义协议时,我收到一条错误消息-错误,无法加载网页! 请再试一次。

我打算使用JavaScript来检测网页是否已加载到嵌入式浏览器中,并显示一条消息,要求用户使用Safari。

一种方法是检测用户代理字符串

嵌入式

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405

苹果浏览器

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3

但是,是否检测到用户代理字符串中是否存在Safari这个词适用于所有版本的iPhone? 还有更简单的方法吗?

显然是的,那是最好的方法。

甚至Chrome for iOs的请求中都包含Safari这个词,因此,假设来自iO而不带“ Safari”这个词的请求来自嵌入式UiWebKit控件,应该没问题。

您可以为您的请求设置自定义User-Agent ...这是一个示例:

NSString *urlString= @"http://www.google.com";
NSURL *url = [NSURL urlString];
NSMutableURLRequest *requestObj = [NSMutableURLRequest requestWithURL:url];
[requestObj setValue:@"myCustomAgent_Mathboy:)/1.0" forHTTPHeaderField:@"User_Agent"];
[webView loadRequest:requestObj];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM