lib/browser_sniffer/patterns.rb in browser_sniffer-1.4.0 vs lib/browser_sniffer/patterns.rb in browser_sniffer-1.5.0
- old
+ new
@@ -58,13 +58,16 @@
%r{^Dalvik/[a-z0-9\.]+.*(Shopify\sPOS)\s(\d(?:\.\d+)*)(\/\d*)*}i,
], [:name, :version], [
# Shopify POS for Android (Native App)
%r{.*(\sPOS\s-).*\s([\d+\.]+)(\/\d*)*\s}i,
], [[:name, 'Shopify POS'], :version], [
- # Shopify POS for Android (Native App) New Format
+ # Shopify POS for Android (React Native App)
%r{(Shopify POS)\/([\d\.]+)[^\/]*\/(Android)\/(\d+)}i,
], [[:name, 'Shopify POS'], :version], [
+ # Shopify POS for iOS (React Native App)
+ %r{(Shopify POS)\/([\d\.]+)[^\/]*\/(iOS)\/([\d\.]+)}i,
+ ], [[:name, 'Shopify POS'], :version], [
# Shopify POS for Android (SmartWebView)
%r{.*(Shopify\sPOS)\s.*Android.*\s([\d+\.]+)(\/\d*)*\s}i,
], [:name, :version], [
# Shopify POS uses this user agent
%r{^(okhttp)\/([\d\.]+)}i
@@ -172,10 +175,16 @@
%r{.*(?:Shopify POS Next|Shopify POS)/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPad)([\d,]+)}i
], [[:type, :tablet], :model], [
# Shopify POS Next for iPod touch
%r{.*(?:Shopify POS Next|Shopify POS)/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPod)([\d,]+)}i
], [[:type, :handheld], :model], [
+ # Shopify POS for iOS iPhone/iPod (React Native App)
+ %r{.*Shopify POS\/[\d\.]+[^\/]*\/(iOS)\/[\d\.]+\/Apple\/((iPhone|iPod)[^\/]*)\/}i,
+ ], [[:type, :handheld], :model], [
+ # Shopify POS for iOS iPad (React Native App)
+ %r{.*Shopify POS\/[\d\.]+[^\/]*\/(iOS)\/[\d\.]+\/Apple\/(iPad[^\/]*)\/}i,
+ ], [[:type, :tablet], :model], [
# Shopify Ping for iPhone
%r{.*Shopify Ping/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPhone)([\d,]+)}i
], [[:type, :handheld], :model], [
# Shopify Mobile for Android
%r{.*Shopify Mobile\/(Android)\/[\d\.]+(?: \(debug(?:|-push)\))? \(Build \d+ with API \d+ on (.*?) ([^\)]*)\)}i
@@ -295,9 +304,12 @@
%r{.*(Shopify Mobile)\/(?:iPhone\sOS|iOS)[\/\d\.]* \((iPhone|iPad|iPod).*\/([\d\.]+)\)}i
], [[:type, :ios], [:name, 'iOS'], :version], [
# Shopify POS Next for iPhone or iPad
%r{.*(Shopify POS Next|Shopify POS)\/(?:iPhone\sOS|iOS)[\/\d\.]* \((iPhone|iPad|iPod).*\/([\d\.]+)\)}i
], [[:type, :ios], [:name, 'iOS'], :version], [
+ # Shopify POS for iOS (React Native App)
+ %r{.*Shopify POS\/[\d\.]+[^\/]*\/(iOS)\/([\d\.]+)\/(Apple)\/(iPhone|iPad|iPod)[^\/]*\/}i
+ ], [[:type, :ios], :version, [:name, 'iOS']], [
# Shopify Ping for iOS
%r{.*Shopify Ping\/(iOS)\/[\d\.]+ \(.*\/([\d\.]+)\)}i
], [[:type, :ios], :version, [:name, 'iOS']], [
# Shopify Mobile for Android
%r{.*Shopify Mobile\/(Android)\/[\d\.]+ }i