Files
rmser/rmser-view/src/hooks/usePlatform.ts

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';
}, []);
};