Kindi丶
Kindi丶
  • 发布:2020-03-31 14:31
  • 更新:2020-12-23 10:19
  • 阅读:1121

【报Bug】webview通信失效

分类:HBuilderX

操作系统: macOS 10.15
HBuilderX: 2.6.8.20200330

经测试,昨天(2020-3-30)开发的功能 webview 通信相关代码,调试都正常,
今天(2020-3-31)一早更新到 HBuilderX: 2.6.8.20200330 后 出现 无法通信的问题。
目前只测试了Android 真机调试 通用基座。

于是切换回上个版本后,测试 功能正常!

同时:

  1. weview 使用 loadURL(url,{xx:'xxx'}) 方法加载网页时 无法添加 headers 字段,经测试 IOS 正常,android 设置无效。
  2. android 上 plus.navigator.getUserAgent() 获取到信息为null,IOS 正常。

测试代码如下:

<template>    
    <view>    
        <web-view src="http://192.168.1.1:3000/test.html" @message="handleMessage"></web-view>    
    </view>    
</template>    

<script>    
    export default {    
        methods: {    
            handleMessage(evt) {    
                console.log('接收到的消息:' + JSON.stringify(evt.detail.data));    
            }    
        }    
    }    
</script>
document.addEventListener('UniAppJSBridgeReady', function() {    
    uni.postMessage({    
        data: {    
            action: 'postMessage'    
        }    
    });    
});  
2020-03-31 14:31 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com

确实有这个问题,回退版本就可以了

DCloud_Android_ST

DCloud_Android_ST

1、weview 使用 loadURL(url,{xx:'xxx'}) 方法加载网页时 无法添加 headers 字段,经测试 IOS 正常,android 设置无效。
2、android 上 plus.navigator.getUserAgent() 获取到信息为null,IOS 正常。
第一个问题已知问题。第二问题为null你确定用2.6.8测试的? 给个示例我看下 uni编译模式是什么v3?

  • Kindi丶 (作者)

    "nvueCompiler": "uni-app",

    "compilerVersion": 3,

    就这样的一段代码。

    今天刚升级了 2.6.9.20200403。 android:打印结果是 uni-app

    切换到上一个版本2.6.5.20200314 打印的是 null

    ios正常。


    const userAgent = plus.navigator.getUserAgent()  
    console.log('UserAgent: ' + userAgent)

    2020-04-07 10:06

  • Kindi丶 (作者)

    代码在 mounted 里调用,直接打印,没有别的操作。

    2020-04-07 10:08

  • DCloud_Android_ST

    回复 Kindi丶: 打印uni-app是对的 uniapp默认会增加UA “uni-app”

    2020-04-07 10:50

  • Kindi丶 (作者)

    回复 DCloud_Android_ST: ios 模拟器可以获取到:Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Html5Plus/1.0 (Immersed/20)

    而在andorid 真机上只能获取到 uni-app Html5Plus/1.0 这是正常吗?

    2020-04-07 11:42

cydida

cydida

uni.postMessage 之前可以,现在已经失效了,同样的代码

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

已修复 2.6.8 postmessage问题,更新版本

cydida

cydida

2.6.8的版本 可以在哪里下载?

l***@163.com

l***@163.com

用uniapp访问,由uniapp生成的h5,提示uni.postMessage没有找到方法
我把 https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js 下到本地了再把

function(e) {  
        return document.addEventListener("DOMContentLoaded", e),  
        o  
    }], f = 0; f < _.length && !(p = _[f](l)); f++);  
    p || (p = {});  
    var m = "undefined" != typeof uni ? uni: {};  
    if (!m.navigateTo) for (var E in p) t(p, E) && (m[E] = p[E]);  
    return m.webView = p,  
    m

改为

function(e) {  
        return document.addEventListener("DOMContentLoaded", e),  
        o  
    }], f = 0; f < _.length && !(p = _[f](l)); f++);  
    p || (p = {});  
    var m = "undefined" != typeof uni ? uni: {};  
    if (!m.navigateTo) for (var E in p) t(p, E) && (m[E] = p[E]);  

    var f = "postMessage";  
    t(p, f) && (m[f] = p[f]);  
    return m.webView = p,  
    m
1***@qq.com

1***@qq.com

请问返回数据event.detail.data为什么接受不到参数呢

该问题目前已经被锁定, 无法添加新回复