|
|
|
|
191
|
// If Safari or iOS, require version 15.2 or later
|
191
|
// If Safari or iOS, require version 15.2 or later
|
192
|
if(/(Mac|iOS|iPhone|iPad|iPod)/i.test(Utils.platformString())) {
|
192
|
if(/(Mac|iOS|iPhone|iPad|iPod)/i.test(Utils.platformString())) {
|
193
|
const ios = /(iPhone|iPad|iPod).* (CPU[\s\w]* OS|CPU iPhone|iOS) ([\d\._]+)/.exec(navigator.userAgent); // Chrome, Firefox, Edge, Safari on iOS
|
193
|
const ios = /(iPhone|iPad|iPod).* (CPU[\s\w]* OS|CPU iPhone|iOS) ([\d\._]+)/.exec(navigator.userAgent); // Chrome, Firefox, Edge, Safari on iOS
|
194
|
- const safari = /(AppleWebKit)\/.* (Version)\/([\d\.]+)/.exec(navigator.userAgent); // Safari on macOS (also newer iPads, Edge on iOS...)
|
|
|
|
|
194
|
+ const safari = /(AppleWebKit)\/.* (Version)\/([\d\.]+)/.exec(navigator.userAgent); // Desktop and Mobile Safari, Epiphany on Linux
|
195
|
const matches = safari || ios; // match safari first (min version)
|
195
|
const matches = safari || ios; // match safari first (min version)
|
196
|
|
196
|
|
197
|
if(matches !== null) {
|
197
|
if(matches !== null) {
|
|
|
|
|
199
|
const [x, y] = version.split(/[\._]/).map(v => parseInt(v));
|
199
|
const [x, y] = version.split(/[\._]/).map(v => parseInt(v));
|
200
|
|
200
|
|
201
|
if((x < 15) || (x == 15 && y < 2)) {
|
201
|
if((x < 15) || (x == 15 && y < 2)) {
|
202
|
- Utils.warning(`${matches === safari ? 'Safari' : 'iOS'} version ${version} is not supported! User agent: ${navigator.userAgent}`);
|
|
|
|
|
202
|
+ Utils.error(`${matches === safari ? 'Safari' : 'iOS'} version ${version} is not supported! User agent: ${navigator.userAgent}`);
|
203
|
return false;
|
203
|
return false;
|
204
|
}
|
204
|
}
|
205
|
}
|
205
|
}
|