您的位置:首页 > 移动开发 > 微信开发

IOS微信无法更改标题解决方法

2017-08-14 16:01 393 查看
截止到ios10.3.3版本,微信单页应用仍有这个问题,项目中我将其封装成一个util工具模块,方便调用~

// 这个在我的博客中有写到过[如何判定浏览器环境](http://blog.csdn.net/sjn0503/article/details/74745608)
import { isIOSWeChat } from 'utils'
// 任意线上icon
const faviconSrc = 'http://*****.ico'
const doc = global.document

/**
* setPageTitle 方法
* 用于修改页面title, 由于ios微信通过document.title = 'xxx' 修改页面title不会生效
* 需要通过iframe这样的"黑魔法"来达到效果 [黑线]
*
* 这里有几个大坑:
* 1. iframe的src不能是base64, 必须发出请求才能生效
*    原来请求的是png,小于8912字节的限制,被base64转化了,现在改成ico,直接与其他图片字体等资源区分开
* 2. 之前iframe都没有插入document.body,iframe是来打酱油的么?
* 3. 微信开发者工具这个坑货, 这货首先不支持document.title赋值改标题, 二来连黑魔法都不管用(时好时坏),连微信都不如!!!
* 4. 你妹的微信开发者工具,坑了我一晚上!
*/
function setIOSWechatPageTitle() {
if (isIOSWeChat()) {
let iframe = doc.createElement('iframe')
iframe.src = faviconSrc
iframe.onload = () => {
setTimeout(() => {
iframe.parentNode.removeChild(iframe)
iframe = null
}, 0)
}
doc.body.appendChild(iframe)
}
}
/**
* 设置页面标题
*/
export {
setIOSWechatPageTitle,
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 微信 更改标题