我想制作一个完全响应式的网站,我想用 Cordova 包装它来制作一个移动应用程序。
但是Cordova只支持哈希路由器。
我可以让我的移动构建使用哈希路由器而不是普通路由器,只使用一个代码库吗? 或者考虑到这种代码重用需求,什么是好的路由策略?
即 Cordova 构建将使用
/index.html#user/profile
并且网页将使用 /user/profile
如果我没记错的话,Cordova 构建会将
cordova
属性注入到全局 window
对象中。您可以检查当前的应用程序版本是否适用于 Cordova,并有条件地使用一个路由器或另一个。
示例:
import {
HashRouter,
BrowserRouter,
} from 'react-router-dom';
const App = () => {
const AppRouter = React.useMemo(() => {
return window.cordova ? HashRouter : BrowserRouter;
}, []);
return (
<AppRouter>
...
</AppRouter>
);
};