合肥前端小菜鸡
合肥前端小菜鸡
  • 发布:2024-08-20 11:32
  • 更新:2024-09-26 17:15
  • 阅读:340

vue3加载webview白屏

分类:uni-app

使用vue3创建项目用webview加载另一个vue3的项目报错白屏 Unexpected token import,Uncaught SyntaxError: Unexpected token .

2024-08-20 11:32 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

你好,可以提供一下webview的链接吗?

合肥前端小菜鸡

合肥前端小菜鸡 (作者)

<template>  
    <view>  
        <view style="height: 100rpx;">&nbsp;</view>  
        <web-view :webview-styles="webviewStyles" :style="{width:'100vw',}" :src="webviewUrl"  
            @message="handleMessage"></web-view>  
    </view>  
</template>  

<script lang="ts" setup>  
    import { ref, onMounted } from 'vue';  
    import { onLoad, onReady } from '@dcloudio/uni-app';  
    import { tnNavBack } from '@/uni_modules/tuniaoui-vue3/utils'  
    const webviewStyles = ref({  
        top: 20,  
        height:null  
    })  
    const getEnv = () => {  
        // #ifdef MP-WEIXIN  
        return 'MP-WEIXIN'  
        // #endif  
        // #ifdef APP-PLUS  
        return 'APP-PLUS'  
        // #endif  
        // #ifdef H5  
        return 'H5'  
        // #endif  
    }  

    const handleMessage = (e) => {  
        let action = ''  
        // #ifdef H5  
        action = e.data?.type || 'Back'  
        // #endif  
        // #ifdef APP-PLUS  
        action = e.detail?.data?.[0]?.type || 'Back'  
        // #endif  

        if (action === 'Back') {  
            navigateBack()  
        }  
    }  
    const navigateBack = () => {  
        tnNavBack()  
    }  
    // 获取屏幕信息  
    const getSystemInfo = () => {  
        uni.getSystemInfo({  
            success: ({  
                screenHeight,  
                statusBarHeight  
            }) => {  
                webviewStyles.value.top = statusBarHeight  
                webviewStyles.value.height = screenHeight - statusBarHeight  
            }  
        });  
    }  
    const baseUrl = `http://192.168.1.10:8082/tk/#`  
    const pageUrl = `pages/index/index`  
    // const webviewUrl = ref(`http://192.168.1.10:5174/tlpdf#/pages/index/index?obj=${JSON.stringify(obj)}`)  
    const webviewUrl = ref()  
    onLoad((options) => {  
        const externalObj = JSON.parse(options.obj)  
        // #ifdef H5  
        window.onmessage = handleMessage  
        // #endif  
        // #ifdef APP-PLUS | MP-WEIXIN  
        getSystemInfo()  
        // #endif  
        // webviewUrl  
        // 携带的数据  
        const obj = {  
            ...externalObj,  
            env: getEnv(),  
        }  
        console.log(obj, '-------obj');  
        webviewUrl.value = `${baseUrl}${pageUrl}?obj=${JSON.stringify(obj)}`  
    })  
</script>  

<style lang="scss" scoped>  
    .page {}  
</style>
  • DCloud_UNI_yuhe

    可能是你携带的数据太长了?你尝试去掉obj试一下

    2024-08-21 10:35

  • 合肥前端小菜鸡 (作者)

    回复 DCloud_UNI_yuhe: 刚刚测试了不是这个问题 只要是vue3用webview加载uniapp的vue3项目就白屏报错 你可以测试一下

    2024-08-21 11:31

  • DCloud_UNI_yuhe

    回复 合肥前端小菜鸡: 你的报错是在哪里出现的?页面上显示的内容是什么?

    2024-08-21 11:47

  • 合肥前端小菜鸡 (作者)

    回复 DCloud_UNI_yuhe: 报错信息:Unexpected token import,Uncaught SyntaxError: Unexpected token .在HBuilder控制台报的 页面白屏不显示如何东西

    2024-08-21 13:55

  • DCloud_UNI_yuhe

    回复 合肥前端小菜鸡: 尝试检查一下引用的路径,webview与vue3无直接关系

    2024-08-21 16:25

  • 合肥前端小菜鸡 (作者)

    回复 DCloud_UNI_yuhe: 这个都尝试了 就是webview的问题 对了之前说的这种情况只有在uniapp运行app的时候白屏 小程序和H5都是正常的

    2024-08-22 09:35

  • DCloud_UNI_yuhe

    回复 合肥前端小菜鸡: 你提供一个可以复现的项目吧,光说我们也无法确定问题

    2024-08-22 10:31

  • 合肥前端小菜鸡 (作者)

    回复 DCloud_UNI_yuhe: 你好 前段时间没注意到 这边已经上传复现demo 麻烦看一下 针对这种不支持的机型后续会兼容吗? 如果不会兼容请回复一下 我们后续还是使用vue2开发webview项目

    2024-08-30 14:31

  • 合肥前端小菜鸡 (作者)

    回复 DCloud_UNI_yuhe: 你好 能回复一下后续webview会优化兼容低版本安卓系统吗?

    2024-09-02 09:15

合肥前端小菜鸡

合肥前端小菜鸡 (作者)

这是复现dome 我已经定位到问题 这个现象会在安卓手机上出现 并且在版本较低的必现 我借遍了公司所有安卓手机 目前发现安卓8.1版本会出现这个情况 高版本不会出现 因为公司安卓手机较少无法复测更多机型 测试机复现信息:OPPO R11s 安卓版本8.1.0 处理器高通 运行内存4G

healthy

healthy

我这里也出现了这个问题,请问怎么处理一下呢?

要回复问题请先登录注册