Meteor设备检测是针对安卓还是iOS的?

9

我有一个Meteor应用程序,可以在iOS和Android设备上运行。我希望某些代码仅在iOS设备上运行,而不在Android设备上运行。我知道可以使用Meteor设备检测包来检测设备,例如:

Meteor.Device.isPhone()

但有没有可能知道它是安卓设备还是iOS设备呢?

编辑:我使用meteor cordova创建了bundle。

1个回答

16

这里有一个全局助手,可以帮助您检测iOS:

Template.registerHelper('isIOS',() => {
  return ( navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false );
});

还有一个针对 Android 的:

Template.registerHelper('isAndroid',() => {
  return navigator.userAgent.toLowerCase().indexOf("android") > -1;
});

在客户端JavaScript中的任何地方使用:

Blaze._globalHelpers.isIOS()
Blaze._globalHelpers.isAndroid()
当然,要在HTML模板标记中使用:
{{#if isIOS}}...{{/if}}
{{#if isAndroid}}...{{/if}}

你在Android中使用了indexOf,在iOS中使用了match,这会有什么区别吗? - Nakib
不完全是这样 - Android 更简单,因为它只有一个版本。而 iOS 则有三个版本。 - Michel Floyd
1
这只适用于浏览器,但如果我使用Meteor Cordova创建了捆绑包呢? - Nakib
抱歉打扰了,但如何在React中实现这个功能? - Sleep Deprived Bulbasaur
这个 SO 回答应该会帮助你使用 React。只需定义函数并将其导出,然后在你的 jsx 中需要它们即可。 - Michel Floyd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接