[前端][fmui]流程处理页面使用history.go(-1)或ejs.page.close()无法返回上个页面的问题
问题现象
目前问题仅存在于IOS手机FMUI流程处理页面。
问题原因
由于fmui页面添加了hash,在ios中会异常添加页面栈,返回时只能返回上一次添加hash的地址
解决方案
遇到此类问题可以依次尝试按以下方法解决:
方法一:更新新版本FMUI或按照下步骤个性化代码
1、排查epm.js(代码未压缩)/comdto.min.js(代码压缩)是否有异常,找到下面的函数,去除函数内部ejs.page.close({ isBack: 1 })执行前对ejs环境的判断,或者添加当前容器环境判断。
// 监听popstate
window.popStateFn = function () {
if (Util.storage.getItem('isBack') == '1') {
Util.storage.setItem('isBack', '0');
}
epm.triggerHookBack(function (r) {
var closeArr = r.filter(function (b) {
if (b === true) {
return b;
}
});
if (closeArr.length === r.length) {
//如果此处有ejs环境条件判断去掉条件判断
//if(ejs.os.ejs){
ejs.page.close({ isBack: 1 });
//}
}
});
};
方法二:改用第三方容器JSSDK打开和返回webView页面
1、在列表页和工作流页面分别引入第三方容器jssdk
<script>
SrcBoot.output(['第三方容器jssdk链接']);
</script>
2、判断ios环境或容器环境,列表页使用容器方法打开页面(不改这一步可能导致关闭所有webView)
3、判断ios环境或容器环境,工作流页面使用容器方法返回上一页