iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >web网页与小程序间如何进行通信
  • 847
分享到

web网页与小程序间如何进行通信

2023-06-21 23:06:07 847人浏览 安东尼
摘要

本篇内容介绍了“WEB网页与小程序间如何进行通信”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们的微信小程序采用的web-view的方式内

本篇内容介绍了“WEB网页与小程序间如何进行通信”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们的微信小程序采用的web-view的方式内嵌H5项目,从而减少开发量,在实际只用中会遇到网页与小程序通信的功能需要,下面我简单总结了我遇到的问题以及解决方案。

小程序提供的功能

微信提供了网页向小程序发送消息的方法:wx.miniProgram.postMessage,该方法向小程序发送消息,会在特定时机(小程序后退、组件销毁、分享)触发组件的message事件。

简单介绍一下如果使用,以分享为例,如果页面A需要特别设置分享内容,比如转发标题、缩略图等。可以再网页中设置好变量值,通过发送给小程序

网页

let shareData = {  path: '转发路径',  title: '自定义转发标题',  imageUrl: '缩略图url',};wx.miniProgram.postMessage({ data: JSON.stringify(shareData) });

小程序

index.wxml

通过bindmessage绑定接收事件

<web-view bindmessage='getMessage' src='{{ src }}'></web-view>

index.js

// 获取从网页发送来的消息getMessage(e) {  const getMessage (e) {  // data是多次postMessage的参数组成的数组  const { data } = e.detail;  // 需要取最后一条数据  let shareMessage = data[data.length - 1];  this.shareMessage = JSON.parse(shareMessage);};// 设置分享onShareAppMessage(options) {  return {    title: this.shareMessage.title,    path:  this.shareMessage.path,    imageUrl: this.shareMessage.imageUrl,  };}

这样一次定制化分享功能就完成了,但是postMessage方法只有特定场景可以获取消息,所以如果非特定场景怎么获取通信呢?

一种简单的获取通信的方法

我提供的解决方案可能不是最优的也不是最通用的,但是如果遇到了问题时可以作为一个备选方案。

1、场景还原

我们的小程序中有城市定位,第一次进入小程序需要选择所在城市,选择城市之后会缓存到本地,之后再次进入小程序不再需要重选选择城市。功能如下截图

web网页与小程序间如何进行通信

选择城市之后会在首页右上角展示

web网页与小程序间如何进行通信

由于城市选择页面和首页都是通过web-view内嵌小程序的方式,所以显然在H5页面中进入缓存,在小程序中是无法获取到缓存信息的。

2、解决方案

解决方案很简单,我跟后端的同伴沟通后,拜托他提供给我一个接口,把城市id和用户信息关联起来,这样我就可以再用户进行小程序的时候获取用户上次选择的城市id,进而再小程序里面缓存处理,这样用户再次进入小程序的时候无需再次选择城市

网页

// 保存城市信息const saveCityHandle = () => {  saveCity({    cityId: cityId,    userId: userId,  }).then(() => {});};

小程序

获取城市id之后通过wx.setStorageSync缓存下来,以便后续使用。

wx.login({  success(res) {    if (res.code) {      wx.request({        url: `${that.domain()}/getUserInfo`,        data: {          body: { jsCode: res.code },        },        success(res) {          wx.setStorageSync('cityId', res.data.cityId);        },      });    } else {      console.log('登录失败!' + res.errMsg);    }  },});

总结

“温故而知新,可以为师矣。”

有时候回过头来看看某些知识点,也许就会有新的思路,与君共勉。ヾ(◍°∇°◍)ノ゙

一首小诗

看了一眼日期,发现12月,2021年最后一个月了,我之前写过了一首小诗,有点符合我现在的心境,也有一些祝福送给自己也送给大家。

眼前是一扇窗,窗外是变换的景色,夜晚,墨绿的树,散落灯光的高楼大厦,疾驰的汽车,或匆忙或悠闲的行人。我好像记住了每一座楼宇,却不记得每一张面孔,不变的建筑,变换的路人。今年,有一些变化,每一颗追求人生的心,都值得期待,每一个不舍的眼神,笑容也无法遮掩。致,所有开发的伙伴,一期一祈,勿怀犹也,幸福美好。

“web网页与小程序间如何进行通信”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: web网页与小程序间如何进行通信

本文链接: https://www.lsjlt.com/news/301411.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • web网页与小程序间如何进行通信
    本篇内容介绍了“web网页与小程序间如何进行通信”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们的微信小程序采用的web-view的方式内...
    99+
    2023-06-21
  • 如何进行微信小程序的页面跳转
    本篇文章为大家展示了如何进行微信小程序的页面跳转,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们将创建第二个视图,然后实现从第一个视图到第二个视图的跳转。首先开发第二个视图:微信小程序开发系列七:...
    99+
    2023-06-05
  • Android进程间如何使用Intent进行通信
    这篇文章主要介绍“Android进程间如何使用Intent进行通信”,在日常操作中,相信很多人在Android进程间如何使用Intent进行通信问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android进程...
    99+
    2023-07-05
  • 详解如何让页面与 iframe 进行通信
    目录引言iframe 向父级页面发送消息父级页面向 iframe 发送消息接收消息指定发送消息的域名引言 这篇文章介绍如何实现页面与 iframe 进行通信,实际工作中可能很难遇到,...
    99+
    2024-04-02
  • 如何通过微信小程序看web前端
    本篇内容介绍了“如何通过微信小程序看web前端”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码角度纵观整...
    99+
    2024-04-02
  • 微信小程序页面间如何传id
    微信小程序页面间传id的方法:在.wxml文件中添加以下代码<block wx:for-items="{{newGoods}}" wx:key="id"> &...
    99+
    2024-04-02
  • 微信小程序如何与后台PHP进行交互
    这篇文章将为大家详细讲解有关微信小程序如何与后台PHP进行交互,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:接下来将讲后台如何与前台进行数据及图片之间的交互,相...
    99+
    2024-04-02
  • 两个Node.js进程间是如何进行通信的
    这篇文章主要讲解了“两个Node.js进程间是如何进行通信的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“两个Node.js进程间是如何进行通信的”吧!两个...
    99+
    2024-04-02
  • Linux进程间如何通信
    这篇文章主要介绍“Linux进程间如何通信”,在日常操作中,相信很多人在Linux进程间如何通信问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux进程间如何通信”的疑惑...
    99+
    2024-04-02
  • 微信小程序如何在页面跳转时进行页面导航
    目录1.声明式导航2.编程式导航3.导航传参总结1. 什么是页面导航 页面导航指的是页面之间的相互跳转。例如,浏览器中实现页面导航的方式有如下两种: ① a链接 ② location...
    99+
    2024-04-02
  • 小程序web-view页面如何返回小程序
    小程序web-view页面返回小程序的方法:用navigateTo跳转可以返回,代码:// <script type="text/javascript" src="https...
    99+
    2024-04-02
  • vue组件间如何进行通信
    本篇内容介绍了“vue组件间如何进行通信”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue是数据驱动视图更新的框架, 我们平时开发,都会把...
    99+
    2023-06-21
  • 微信小程序web-view嵌入uni-app H5页面,通过H5页面跳转其他小程序如何操作?
    1、H5页面代码 wx.miniProgram.reLaunch({ url: `/pages/index/indexappId=${您的微信小程序appId}` });//触发小程序刷新页面获取appId  微信小程序appId查看...
    99+
    2023-08-31
    小程序 微信小程序 前端
  • python中进程间如何通信
    今天就跟大家聊聊有关python中进程间如何通信,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;...
    99+
    2023-06-14
  • 微信小程序如何实现页面间传值
    这篇文章主要介绍“微信小程序如何实现页面间传值”,在日常操作中,相信很多人在微信小程序如何实现页面间传值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序如何实现页面间传值”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-14
  • 微信小程序页面间如何传递数据
    微信小程序页面间实现传递数据的几种方法使用url通过option获取值//定义url,并赋值wx.navigateTo({url: 'testid=1'})//使用option获取值url的值Page({data:{id:'',},onLo...
    99+
    2024-04-02
  • 微信小程序如何解析网页内容
    这篇文章主要介绍微信小程序如何解析网页内容,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信小程序 解析网页内容详解最近在写一个爬虫,需要将网页进行解析供微信小程序使用。文字和图片解...
    99+
    2024-04-02
  • 微信小程序和web之间如何实现交互
    这篇文章主要介绍微信小程序和web之间如何实现交互,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!接入条件首先得有开发者权限你得有台服务器,有权限上传文件,不然验证无法通过必须是企业小...
    99+
    2024-04-02
  • 小程序连接MQTT进行通信(保证能用)
    一、MQTT通信介绍 MQTT 是一种基于客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、 简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联...
    99+
    2023-08-17
    小程序
  • 小程序和webview如何通信?
    1、小程序只能通过url链接向webview传数据 2、webview可以通过wx.miniProgram.postMessage向小程序传数据,但请注意下图提示 3、示例: webview向小程序...
    99+
    2023-09-06
    小程序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作