当前位置: 首页 > wzjs >正文

玉环住房与城乡建设规划局网站成品人和精品人的区别在哪

玉环住房与城乡建设规划局网站,成品人和精品人的区别在哪,软装设计师是干什么的,网站在线留言系统本文旨在解决vue3版本下uniapp h5项目向app项目中webview通讯问题 问题产生于uniapp不支持vue3使用template.h5.html 自定义打包模板 h5向app发送信息 有很多文章指出h5项目使用uni.postmessage 这个api需要在template.h5.html引入一个js文件 然后改下webuni变量再从manifest.…

本文旨在解决vue3版本下uniapp h5项目向app项目中webview通讯问题
问题产生于uniapp不支持vue3使用template.h5.html 自定义打包模板

h5向app发送信息

有很多文章指出h5项目使用uni.postmessage 这个api需要在template.h5.html引入一个js文件 然后改下webuni变量再从manifest.json配置下改文件 就可以全文使用了

vue2环境是可以参考的
文章指向通信跳转文章

但这方案在vue3环境下是无法使用的
在这里插入图片描述
vue3的解决方案是直接在需要使用的页面import引入该文件
直接调用webUni.postMessage即可

<script lang="ts" setup>import { MessageUtil } from "@/utils/MessageUtil";import webUni from '@/static/js/uni.webview.js'const saveImage = ()=>{webUni.postMessage({ data: { action: 'download', data: 'http://mj-1302596703.cos.ap-guangzhou.myqcloud.com/file/ttc7sKc4g0mcSL2KbtJg.png' } });}
</script>

接下来的问题就细化成将js文件改造成可支持model暴露了

const webUni = (function() {"use strict";try {var e = {};Object.defineProperty(e, "passive", {get: function() {return true;}}), window.addEventListener("test-passive", null, e)} catch (e) {}var n = Object.prototype.hasOwnProperty;function t(e, t) {return n.call(e, t);}var i = [],a = function(e, n) {var t = {options: {timestamp: +new Date},name: e,arg: n};if (window.__dcloud_weex_postMessage || window.__dcloud_weex_) {if ("postMessage" === e) {var a = {data: [n]};return window.__dcloud_weex_postMessage ? window.__dcloud_weex_postMessage(a) : window.__dcloud_weex_.postMessage(JSON.stringify(a));}var o = {type: "WEB_INVOKE_APPSERVICE",args: {data: t,webviewIds: i}};window.__dcloud_weex_postMessage ? window.__dcloud_weex_postMessageToService(o) : window.__dcloud_weex_.postMessageToService(JSON.stringify(o));}if (!window.plus) return window.parent.postMessage({type: "WEB_INVOKE_APPSERVICE",data: t,pageId: ""}, "*");if (0 === i.length) {var r = plus.webview.currentWebview();if (!r) throw new Error("plus.webview.currentWebview() is undefined");var d = r.parent(),s = "";s = d ? d.id : r.id, i.push(s);}if (plus.webview.getWebviewById("__uniapp__service")) plus.webview.postMessageToUniNView({type: "WEB_INVOKE_APPSERVICE",args: {data: t,webviewIds: i}}, "__uniapp__service");else {var w = JSON.stringify(t);plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat("WEB_INVOKE_APPSERVICE", '",').concat(w, ",").concat(JSON.stringify(i), ");"));}},o = {navigateTo: function(e) {var n = e.url;a("navigateTo", {url: encodeURI(n)});},navigateBack: function(e) {var n = e.delta;a("navigateBack", {delta: parseInt(n) || 1});},switchTab: function(e) {var n = e.url;a("switchTab", {url: encodeURI(n)});},reLaunch: function(e) {var n = e.url;a("reLaunch", {url: encodeURI(n)});},redirectTo: function(e) {var n = e.url;a("redirectTo", {url: encodeURI(n)});},getEnv: function(callback) {window.plus ? callback({plus: true}) : callback({h5: true});},postMessage: function(e) {a("postMessage", e.data || {});}};return o;
})();export default webUni;

直接将其替换官方提供的文件代码就能使用了在这里插入图片描述
app接收

<web-view :webview-styles="webviewStyles" :src="url" @message="handlePostMessage"></web-view>handlePostMessage(evt) {let data = evt.detail.data[0];const action = data?.action;switch (action) {case 'download': {saveFileToPhotosAlbum(data.data)break;}}},
http://www.dtcms.com/wzjs/10010.html

相关文章:

  • 如何开发网站平台开发南宁seo排名优化
  • 国际消息新闻百度seo优化包含哪几项
  • 怎么把网站横幅做很大企业网站制作方案
  • 做网站用的编程语言seo网站推广助理
  • 怎样利用网站做淘宝客搜索关键词排名推广
  • 网站后台管理系统模板下载西安快速排名优化
  • 扫码进入网站 怎么做淘宝店铺怎么运营
  • 如何用框架做网站推广优化排名
  • 有哪些网站做电子元器件比较好东莞网站建设推广哪家好
  • 大连装修网站推广百度快照是干什么的
  • 可以做哪些有趣的网站百度问答平台
  • 查看网站 vps营销策略是什么
  • wordpress做淘客网站网站推广和网络推广
  • 如何再腾讯云服务器做网站google store
  • 网络推广文案策划书引擎优化是什么意思
  • 在线网站建设工程标准seo整站优化方案案例
  • 做网站开发需要什么郑州网站seo推广
  • 学习做网站只学过cvivo应用商店
  • 米拓网站建设步骤自己怎么优化关键词
  • 网站建设人员招聘要求百度学术论文官网入口
  • 安踏网站建设策划方案新闻头条 今天
  • 做影集的网站或软件网络销售公司经营范围
  • 网站做两个月百度没有录取软文是什么东西
  • 云南建设监理协会官方网站seo专业技术培训
  • 留号码的广告网站不需要验证码seo课程培训课程
  • 做棋牌网站赚钱吗网络营销心得体会800字
  • 小程序网站开发湖北网站建设制作
  • 泉州有哪些公司是做网站天津百度快速排名优化
  • 一个人做公司管理网站营销方案100个软文
  • 个人主页网页介绍平台优化是指什么