【问题标题】:Determing iPad and iPhone models with pop up message通过弹出消息确定 iPad 和 iPhone 型号
【发布时间】:2015-11-12 08:37:35
【问题描述】:

请原谅我缺乏知识!

我有兴趣为我的公司创建脚本/Web 应用程序,我一直在努力寻找我的问题的答案。

是否可以使用用户代理字符串检测 iPhone 或 iPad 型号,然后显示“您有 iPhone 5C”的消息?... 如果没有,我还有哪些其他可能的选择?

我看过很多关于检测浏览器格式是 iPad 还是 iPhone 的帖子。还有一个 SDK 代码可以模拟我正在尝试实现的概念。

我缺乏经验...但渴望学习!

【问题讨论】:

  • 对于iOS 应用程序,您可以使用这一行轻松完成:[[UIDevice currentDevice] platformString]。但我认为您有兴趣了解您网站上的访问者的设备型号吗?

标签: javascript php iphone ipad


【解决方案1】:

模型的用户友好名称无法通过 API 获得。我参与的应用程序使用从几个网站编译的数据并建立某种应用程序内列表。您需要模型列表及其用户友好的名称等价物。两者都可以通过谷歌搜索获得。我不知道有一个完全全面的列表,但是稍微搜索一下就会找到几个网站,它们的数据可以被提炼成一个列表。

要获取设备的型号作为密钥,使用以下代码:

[UIDevice currentDevice].model

【讨论】:

  • 他想为此写一个网页脚本!他不是在编写 iOS 应用程序。
  • 你可能是对的,但是objective-c是一个有趣的标签。
  • 是的,我已经评论并请他确认他真正想要什么。然而,从他的陈述中可以明显看出,他正在尝试通过访问他的网站来获取该信息,因为他正在制作一个网络应用程序
  • 大家好!感谢您非常迅速的答复。很抱歉标签混乱,我不太确定,所以我添加了建议的标签。好的,所以 NSNoob 正在赚钱,因为我正试图将不太懂技术的客户引导到一个能够为我们检测到他们的确切设备型号的页面,这样我们就可以确切地知道我们正在处理什么。我确实找到了这些用户代理前缀并且我希望通过检测用户代理前缀本质上我可以将它们重定向到专门针对每个型号的页面.. Apple-iPhone6C1/iPhone 5S GSM
  • 我是否可以使用带有特定用户代理字符串的 .htaccess 文件将它们重定向到 5c.website.com - iPad3.website.com 等等?
【解决方案2】:

我假设您正在尝试通过访问您的网站来获取信息。至少据我所知,您无法通过网络脚本知道设备的确切型号。但是您可以确定用户使用的是iPhoneiPad 还是iPod。以下是两个选项:

Javascript:

var Apple = {};
Apple.UA = navigator.userAgent;
Apple.Device = false;
Apple.Types = ["iPhone", "iPod", "iPad"];
for (var d = 0; d < Apple.Types.length; d++) {
    var t = Apple.Types[d];
    Apple[t] = !!Apple.UA.match(new RegExp(t, "i"));
    Apple.Device = Apple.Device || Apple[t];
}

// is this an Apple device?
alert(
    "Apple device? " + Apple.Device +
    "niPhone? " + Apple.iPhone +
    "niPod? " + Apple.iPod +
    "niPad? " + Apple.iPad
);

PHP 脚本:

// Apple detection array
$Apple = array();
$Apple['UA'] = $_SERVER['HTTP_USER_AGENT'];
$Apple['Device'] = false;
$Apple['Types'] = array('iPhone', 'iPod', 'iPad');
foreach ($Apple['Types'] as $d => $t) {
    $Apple[$t] = (strpos($Apple['UA'], $t) !== false);
    $Apple['Device'] |= $Apple[$t];
}

// is this an Apple device?
echo
    "<p>Apple device? ", ($Apple['Device'] ? 'true' : 'false'),
    "</p>n<p>iPhone? ", ($Apple['iPhone'] ? 'true' : 'false'),
    "</p>n<p>iPod? ", ($Apple['iPod'] ? 'true' : 'false'),
    "</p>n<p>iPad? ", ($Apple['iPad'] ? 'true' : 'false'),
    '</p>';

欲了解更多信息,请阅读here

由于您的标签和声明有点混乱,如果您使用 iOS sdk 并构建 iOS 应用程序,您可以简单地从一行获取模型:

[[UIDevice currentDevice] platformString]

【讨论】:

    猜你喜欢
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多