sin2x
sin2x
  • 发布:2023-11-16 13:41
  • 更新:2024-02-20 21:19
  • 阅读:556

【报Bug】swiper 内web-view 调用evalJs 失败,this.$refs.webview.evalJs is not a function

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 14.0 (23A344)

HBuilderX类型: 正式

HBuilderX版本号: 3.96

手机系统: 全部

页面类型: nvue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

华为Novaz, iOS 模拟器

示例代码:

<swiper>  
    <swiper-item>  
           <text>演示,非真实代码</text>  
        </swiper-item>  
         <swiper-item>    
                        <web-view ref="webview" :style="{width:'750rpx',height:mainHeight}" :src="nav.apiUrl" :webview-styles="webviewStyles" @message="onWebviewPostMessage" @onPostMessage="onWebviewPostMessage"></web-view>  

    </swiper-item>  
</swiper>  

this.$refs.webview.evalJs("document.body.style.background ='#00FF00'");  

操作步骤:

在一个nvue 页面里swiper 里面放一个web-view,使用ref 来调用evalJs

预期结果:

成功执行evalJs

实际结果:

this.$refs.webview.evalJs is not a function

bug描述:

swiper 内web-view 调用evalJs 失败,显示:this.$refs.webview.evalJs is not a function,其它场景可以正常调用

2023-11-16 13:41 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com

复制我的去调试看看

onReady() {  
                var currentWebview = this.$scope.$getAppWebview(); //获取当前页面的webview对象,此对象相当于html5plus里的plus.webview.currentWebview()        
                setTimeout(function() {    
                    let webview = currentWebview.children()[0];    
                    webview.evalJS(`alert(123)`);  
                }, 5000); //如果是页面初始化调用时,需要延时一下   
        },

要回复问题请先登录注册