fix(runtime): onGenerateRoute pathElements 越界 RangeError
- buy-service/renew-minioffice 加长度检查 (pathElements.length >= 4/3) - 根因: Flutter web 深链接渐进式路径解析, onGenerateRoute 被调用多次, pathElements 递增 ([,buy-service] -> [,buy-service,1] -> 完整), 前几次路径短但 pathElements[1]已匹配 -> int.parse([2])/[3] 越界 - 直接访问/刷新 /buy-service/x/y, /renew-minioffice/x 时崩溃 - 恢复 buy_service 实验代码 (data 校验 + mounted 保留)
This commit is contained in:
46
tools/e2e/main.dart.js
Normal file
46
tools/e2e/main.dart.js
Normal file
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
|
||||
|
||||
|
||||
// A map containing the URLs for the bootstrap scripts in debug.
|
||||
let _scriptUrls = {
|
||||
"mapper": "stack_trace_mapper.js",
|
||||
"requireJs": "require.js"
|
||||
};
|
||||
|
||||
// Create a TrustedTypes policy so we can attach Scripts...
|
||||
let _ttPolicy;
|
||||
if (window.trustedTypes) {
|
||||
_ttPolicy = trustedTypes.createPolicy("flutter-tools-bootstrap", {
|
||||
createScriptURL: (url) => {
|
||||
let scriptUrl = _scriptUrls[url];
|
||||
if (!scriptUrl) {
|
||||
console.error("Unknown Flutter Web bootstrap resource!", url);
|
||||
}
|
||||
return scriptUrl;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Creates a TrustedScriptURL for a given `scriptName`.
|
||||
// See `_scriptUrls` and `_ttPolicy` above.
|
||||
function getTTScriptUrl(scriptName) {
|
||||
let defaultUrl = _scriptUrls[scriptName];
|
||||
return _ttPolicy ? _ttPolicy.createScriptURL(scriptName) : defaultUrl;
|
||||
}
|
||||
|
||||
// Attach source mapping.
|
||||
var mapperEl = document.createElement("script");
|
||||
mapperEl.defer = true;
|
||||
mapperEl.async = false;
|
||||
mapperEl.src = getTTScriptUrl("mapper");
|
||||
document.head.appendChild(mapperEl);
|
||||
|
||||
// Attach require JS.
|
||||
var requireEl = document.createElement("script");
|
||||
requireEl.defer = true;
|
||||
requireEl.async = false;
|
||||
requireEl.src = getTTScriptUrl("requireJs");
|
||||
// This attribute tells require JS what to load as main (defined below).
|
||||
requireEl.setAttribute("data-main", "main_module.bootstrap");
|
||||
document.head.appendChild(requireEl);
|
||||
Reference in New Issue
Block a user