mirror of https://github.com/OpenVidu/openvidu.git
openvidu-browser: iPad PRO support. Fixes #490
* iPad PRO support * Refactor checkSystemRequeriments methodpull/508/head
parent
5c4b9c7997
commit
37b4f41862
|
@ -338,27 +338,30 @@ export class OpenVidu {
|
||||||
const family = platform.os!!.family;
|
const family = platform.os!!.family;
|
||||||
const userAgent = !!platform.ua ? platform.ua : navigator.userAgent;
|
const userAgent = !!platform.ua ? platform.ua : navigator.userAgent;
|
||||||
|
|
||||||
// Reject iPhones and iPads if not Safari ('Safari' also covers Ionic for iOS)
|
if(this.isIPhoneOrIPad(userAgent)) {
|
||||||
if (family === 'iOS' && (browser !== 'Safari' || userAgent.indexOf('CriOS') !== -1 || userAgent.indexOf('FxiOS') !== -1)) {
|
if(this.isIOSWithSafari(userAgent)){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Accept: Chrome (desktop and Android), Firefox (desktop and Android), Opera (desktop and Android),
|
// Accept: Chrome (desktop and Android), Firefox (desktop and Android), Opera (desktop and Android),
|
||||||
// Safari (OSX and iOS), Ionic (Android and iOS), Samsung Internet Browser (Android)
|
// Safari (OSX and iOS), Ionic (Android and iOS), Samsung Internet Browser (Android)
|
||||||
if (
|
if (
|
||||||
(browser !== 'Safari') &&
|
(browser === 'Safari') ||
|
||||||
(browser !== 'Chrome') && (browser !== 'Chrome Mobile') &&
|
(browser === 'Chrome') || (browser === 'Chrome Mobile') ||
|
||||||
(browser !== 'Firefox') && (browser !== 'Firefox Mobile') &&
|
(browser === 'Firefox') || (browser === 'Firefox Mobile') ||
|
||||||
(browser !== 'Opera') && (browser !== 'Opera Mobile') &&
|
(browser === 'Opera') || (browser === 'Opera Mobile') ||
|
||||||
(browser !== 'Android Browser') && (browser !== 'Electron') &&
|
(browser === 'Android Browser') || (browser === 'Electron') ||
|
||||||
(browser !== 'Samsung Internet Mobile') && (browser !== 'Samsung Internet')
|
(browser === 'Samsung Internet Mobile') || (browser === 'Samsung Internet')
|
||||||
) {
|
) {
|
||||||
return 0;
|
|
||||||
} else {
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
// Reject iPhones and iPads if not Safari ('Safari' also covers Ionic for iOS)
|
||||||
|
// Reject others browsers not mentioned above
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the browser supports screen-sharing. Desktop Chrome, Firefox and Opera support screen-sharing
|
* Checks if the browser supports screen-sharing. Desktop Chrome, Firefox and Opera support screen-sharing
|
||||||
|
@ -1035,4 +1038,18 @@ export class OpenVidu {
|
||||||
(platform.name === 'Electron' && videoSource.startsWith('screen:'))
|
(platform.name === 'Electron' && videoSource.startsWith('screen:'))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private isIPhoneOrIPad(userAgent): boolean {
|
||||||
|
const isTouchable = 'ontouchend' in document;
|
||||||
|
const isIPad = /\b(\w*Macintosh\w*)\b/.test(userAgent) && isTouchable;
|
||||||
|
const isIPhone = /\b(\w*iPhone\w*)\b/.test(userAgent) && /\b(\w*Mobile\w*)\b/.test(userAgent) && isTouchable;
|
||||||
|
|
||||||
|
return isIPad || isIPhone;
|
||||||
|
}
|
||||||
|
|
||||||
|
private isIOSWithSafari(userAgent): boolean{
|
||||||
|
return /\b(\w*Apple\w*)\b/.test(navigator.vendor) && /\b(\w*Safari\w*)\b/.test(userAgent)
|
||||||
|
&& !/\b(\w*CriOS\w*)\b/.test(userAgent) && !/\b(\w*FxiOS\w*)\b/.test(userAgent);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue