uni-app plus.webview.create创建的窗口监听title变化存在字符长度限制
uni-app plus.webview.create创建的窗口监听title变化存在字符长度限制
产品分类:
uniapp/App
示例代码:
var wv = plus.webview.create('https://mdetail.tmall.com/templates/pages/desc?id=604509555601', 'tbPicInfo',{
'uni-app': 'none',//不加载uni-app渲染层框架,避免样式冲突
height: '200px',
width: '200px'
})
wv.appendJsFile('_www/static/js/details.js');
wv.overrideUrlLoading({mode:'allow',match:'^(http|https):\/\/.*'},(e) => {});//拦截非http的
this.$scope.$getAppWebview().append(wv);//获取当前窗口的WebviewObject对象 在vue页面直接使用plus.webview.currentWebview()无效
wv.addEventListener('titleUpdate', (event) => {//监听title变化。但是title长度被限制
console.log(event);
}, false);
更多关于uni-app plus.webview.create创建的窗口监听title变化存在字符长度限制的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
可以换个方式,可以先把数据存storage,然后把storage的key放到title,uniapp页面拿到这个key,再从storage把这个数据读出来。
建议用拦截url方式做这个key传递。修改title会让用户看到,不友好。
更多关于uni-app plus.webview.create创建的窗口监听title变化存在字符长度限制的实战教程也可以访问 https://www.itying.com/category-93-b0.html
对,我后面就已经使用url拦截的方式了。不过就算改了title。现在的网页也很少调用或显示title了
在uni-app中使用plus.webview.create创建Webview窗口时,监听titleUpdate事件确实存在字符长度限制。这是由底层原生Webview组件的实现机制决定的,不同平台的限制可能不同:
- Android平台:通常限制在50-100个字符左右,超长部分会被截断
- iOS平台:限制相对宽松,但仍有字符数限制
解决方案:
- 使用JavaScript注入获取完整标题:
// 在Webview加载完成后注入JS获取完整title
wv.evalJS(`
var originalTitle = document.title;
window.plus.bridge.exec('UNIAPP', 'onTitleUpdate', [originalTitle]);
`);
// 在页面中监听自定义事件
plus.globalEvent.addEventListener('onTitleUpdate', function(e) {
console.log('完整标题:', e.data);
});

