我们的H5页面需要在钉钉中打开,测试小姐姐发现,页面在跳转的时候,页面title没有更新,一个title从头用到尾。
如图,已经登录账号进入使用的页面,title还是登录的title
经过查阅,发现这是因为:钉钉浏览器没有监听title属性的变更事件,所以这个时候虽然页面跳转了,但是它不知道。
参考:
参考链接https://gcdn.grapecity.com.cn/showtopic-95855-1-1.html解决方案:
使用钉钉自带的jsapi
npm install dingtalk-jsapi --save
我们项目中用的umi里的useTitle('biaoti')设置页面title,在飞书/企业微信/微信自带浏览器是没问题的,那么针对钉钉做兼容即可
import * as dd from 'dingtalk-jsapi';
// 改变页面title方法
export const ChangePageTitle = (title: string) => {
// ready方法确保API加载完成后调用biz.navigation.setTitle来改变页面标题
dd.ready(() => {
return dd.biz.navigation.setTitle({
title: title,
});
});
};
// 判断是不是钉钉
export const isDingTalk = window.navigator.userAgent.toLowerCase().includes('dingtalk');
// 需要使用的页面
import { ChangePageTitle, isDingTalk } from '@/utils/dingTalk';
export default const a =()=>{
const titleMessage = 'biaoti'
useTitle(titleMessage);
isDingTalk && ChangePageTitle(titleMessage);
return<></>
}
这么修改后,钉钉的title可以正常的显示了!