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组件的实现机制决定的,不同平台的限制可能不同:

  1. Android平台:通常限制在50-100个字符左右,超长部分会被截断
  2. iOS平台:限制相对宽松,但仍有字符数限制

解决方案:

  1. 使用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);
});
回到顶部