小程序中用webview中的页面与小程序交互

需求是这样的,我需要在我的微信小程序上用webview加载一个第三方的h5页面,是用vue3做的,这个h5页面有一个下载pdf文件的功能,问题来了,这是人家h5页面的下载文件,但在我的小程序的webview里就不行作用了,我想到的办法就是,客户点下载文件按钮时,我让h5把pdf的文件url给我,我再通过小程序的方法来下载文件。

webview文件代码 :jumpUrl中是要展示的h5页面的地址。

<template> 复制代码
><view>
<web-view :src="jumpUrl" @load="bindload"  @message="handleMessage" @error="binderror"></web-view>
</view>
</template>

<script>
    export default {
    data() {
        return {
            jumpUrl:''
        }
    },
    async onLoad(){
        this.jumpUrl=uni.getStorageSync('jumpUrl')
    },
        methods:{
            async handleMessage(event) {
                console.log("handleMessage3")
                console.log('从H5接收到的数据:33', event.detail.data);
                let data=event.detail.data[0].url
                console.log(data)
                uni.downloadFile({
                url: data,
                  success: function (res) {
                  console.log("成功!")
                  console.log(res)
                var filePath = res.tempFilePath;
                uni.openDocument({
                  filePath: filePath,
                  showMenu: true,
                  success: function (res) {
                console.log('打开文档成功');
                  },
                  fail(err) {
                  console.log("失败了")
                  uni.showToast({
                   icon:'none',
                   title:err
                  })
                   console.log(err);
                  }
                });
                  }
                }); 
             
            },
            bindload(event){
                console.log("加载完成!!!")
                console.log(event)
            },
            binderror(){
                console.log("加载失败")
            },
            download(){
                console.log("sss")
            }
        }
    }
</script>

<style scoped>
    .xxx{position: fixed;bottom:10vh;right:2vh;z-index: 999;}
</style>

下面是h5页面代码,用的vue3:

需要先安装:npm install weixin-js-sdk -S

<script setup lang="ts"> 复制代码
import wx from "weixin-js-sdk"
const handleClick=()=>{
  console.log('点击')
       console.log("ssss")
       alert("在打开页面点击右上角的...,然后'保存到手机'即可 !!")
        wx.miniProgram.navigateBack({delta: 1} as any)
        wx.miniProgram.postMessage({
          data: {url: "https://www.xxxx.com/1.pdf"}
          })

}
</script>

<template>
  <div>
    <button @click="handleClick">点击</button>
  </div>
</template>

<style scoped>

</style>
相关推荐
2501_9160088913 小时前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
2501_915921439 天前
iOS 实时日志怎么看?KeyMob 的日志过滤、崩溃报告与符号化
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张12 天前
无需 Mac 的 iOS App 上架工具,开心上架Appuploader 负责哪些环节
android·ios·小程序·https·uni-app·iphone·webview
2501_9159090612 天前
Ipa Guard 防护上架,混淆、重签名和回归测试怎么做
android·ios·小程序·https·uni-app·iphone·webview
2501_9159184112 天前
iOS 上架注意事项有哪些?Appuploader 的四个阶段自查清单
android·ios·小程序·https·uni-app·iphone·webview
2501_9160088913 天前
马甲包过审卡在哪?Ipa Guard 能做的和做不到的
android·小程序·https·uni-app·iphone·webview
2501_9159214314 天前
iOS应用耗电测试:使用Energy Log、Keymob和Instruments进行性能监控与能源消耗分析
android·ios·小程序·https·uni-app·iphone·webview
sejinan16 天前
极致轻量与秒级起播:NativeWasmTv 开源硬核技术解析与升级版体验
android·开源·webview·tv
2501_9159214319 天前
iOS应用从开发到上架App Store的完整步骤详解
android·ios·小程序·https·uni-app·iphone·webview
FungLeo20 天前
成为全栈·Flutter App 篇·内置 WebView:网页历史、App 返回与外链安全
flutter·网络安全·移动开发·webview·路由管理·成为全栈