2015-08-18 12 views
8

Ich habe eine Meteor App, die für iOS und Android-Gerät bereitgestellt wird, und ich möchte, dass bestimmte Code auf nur iOS-Gerät und nicht auf Android ausgeführt wird. Ich weiß, dass ich Gerät Meteor Geräteerkennung Paket wieMeteor Gerät Erkennung Android oder iOS?

Meteor.Device.isPhone() 

erkennen kann, aber ist es eine Möglichkeit, wenn sie ein Android oder iOS-Gerät kennen kann.

EDIT: Ich habe Bündel mit Meteor Cordova erstellt.

Antwort

16

Hier ist ein globaler Helfer, der den Trick so weit wie Erkennung iOS tun sollten:

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

und eine andere für Android:

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

Um überall in Client js zu verwenden:

Blaze._globalHelpers.isIOS() 
Blaze._globalHelpers.isAndroid() 

Und natürlich, in HTML-Vorlage Markup zu verwenden:

{{#if isIOS}}...{{/if}} 
{{#if isAndroid}}...{{/if}} 
+0

Sie haben indexof für Android verwendet und passen für ios macht das keinen Unterschied – Nakib

+0

Nicht wirklich - Android ist einfacher, da es nur in einem Geschmack kommt. iOS kommt in 3. –

+1

das funktioniert nur für broswer, aber was ist, wenn ich Bundle mit meteor cordova erstellt haben – Nakib