mirror of
https://github.com/serty2005/rmser.git
synced 2026-02-04 19:02:33 -06:00
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { useMemo } from 'react';
|
|
|
|
export type Platform = 'MobileApp' | 'Desktop' | 'MobileBrowser';
|
|
|
|
/**
|
|
* Хук для определения текущей платформы
|
|
* MobileApp - если есть специфические признаки мобильного приложения
|
|
* Desktop - если это десктопный браузер
|
|
* MobileBrowser - если это мобильный браузер
|
|
*/
|
|
export const usePlatform = (): Platform => {
|
|
return useMemo(() => {
|
|
const userAgent = navigator.userAgent;
|
|
|
|
// Проверка на мобильное приложение (специфические признаки)
|
|
// Можно добавить дополнительные проверки для конкретных приложений
|
|
const isMobileApp = /rmser-app|mobile-app|cordova|phonegap/i.test(userAgent);
|
|
|
|
if (isMobileApp) {
|
|
return 'MobileApp';
|
|
}
|
|
|
|
// Проверка на мобильный браузер
|
|
const isMobileBrowser = /android|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(userAgent);
|
|
|
|
if (isMobileBrowser) {
|
|
return 'MobileBrowser';
|
|
}
|
|
|
|
// По умолчанию - десктоп
|
|
return 'Desktop';
|
|
}, []);
|
|
};
|