nav*_*vid 3 browser redirect reload flutter flutter-web
当用户尝试刷新浏览器中的当前页面时,我需要重定向到根页面。默认行为是打开同一页面。我尝试使用onBeforeUnload(此答案)和window.location.replace或进行重定向Navigator.push,但都不起作用。
对我有用的是检查 JS 中的刷新状态(检查重新加载),然后重定向。所以我在加载颤振代码之前添加了一个检查index.html:
<script>
function isReload() {
try {
return (
(window.performance.navigation && window.performance.navigation.type === 1) ||
window.performance.getEntriesByType('navigation').map((nav) => nav.type).includes('reload')
);
} catch(err) {
return false;
}
}
if (isReload()) {
console.log("Page accessed by reload, redirecting...");
window.location.replace('/');
} else {
window.addEventListener('load', function(ev) {
// Download main.dart.js
_flutter.loader.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
}
}).then(function(engineInitializer) {
return engineInitializer.initializeEngine();
}).then(function(appRunner) {
return appRunner.runApp();
});
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1827 次 |
| 最近记录: |