教你如何實現頁面間的資料通訊
場景描述
某些情況下,開發者可能需要實現頁面間的訊息傳遞來獲取資料,例如A頁面跳轉至B頁面後,B頁面傳送訊息給A頁面,A頁面能夠接收到。此時可以透過訊息通道的機制來實現頁面間的相互通訊。
實現思路
頁面 messageChannel建立了訊息通道,並接收訊息。跳轉到頁面test,在頁面test透過訊息通道傳送訊息。頁面messageChannel收到訊息後透過toast展示出來。
解決方法
頁面messageChannel.ux檔案:
<template> <div class="item-container"> <input type="button" onclick="creatChannel" value="建立訊息通道"/> <input type="button" onclick="routeChannel" value="跳轉到detail頁面傳送訊息"/> <input type="button" onclick="cancelChannel" value="關閉訊息通道"/> </div> </template> <style> .item-container { margin-bottom: 50px; flex-direction: column; justify-content:center; } input{ margin-bottom: 70px; } </style> <script> import prompt from '@system.prompt' import router from "@system.router" var channel; export default { data: { componentName: 'messageChannel' }, onInit: function () { this.$page.setTitleBar({text: 'messageChannel'}) }, creatChannel: function () { channel = new BroadcastChannel('channel1'); prompt.showToast({message: '建立訊息通道成功'}); channel.onmessage = function (event) { console.log(event.data) prompt.showToast({message: '接受訊息:' + event.data}); } }, routeChannel: function () { router.push({ uri: '/Test' }); }, cancelChannel: function () { channel.close(); prompt.showToast({message: '關閉訊息通道成功'}); } } </script>
頁面test.ux檔案:
<template> <div class="item-container"> <input type="button" onclick="postChannel" value="傳送訊息"/> </div> </template> <style> .item-container { margin-bottom: 50px; flex-direction: column; justify-content:center; } </style> <script> export default { data: { componentName: 'detail', }, onInit: function () { this.$page.setTitleBar({text: 'detail'}) }, postChannel: function () { var channel = new BroadcastChannel('channel1'); channel.postMessage("hello world"); } } </script>
更多參考
快應用文件參考:
https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickapp-script
原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0201460275887380907?fid=0101271690375130218
原作者:Mayism
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2779661/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用Storage Event實現頁面間通訊
- sharedWorker 實現多頁面通訊
- 如何實現瀏覽器標籤頁之間的通訊瀏覽器
- 頁面間通訊與資料共享解決方案簡析
- 小程式頁面間通訊——EventChannel(資料量多時)
- 教你如何運用python實現不同資料庫間資料同步功能Python資料庫
- 百度小程式之間的頁面通訊
- WPF使用事件聚合器,實現任意頁面跨頁通訊事件
- 實現多個標籤頁之間通訊的幾種方法
- 如何實現臺達PLC與上位機的資料通訊?
- 實現不同程式之間的通訊
- 對空資料頁面等公共頁面實現的一些思考
- uni-app上下級頁面資料雙向通訊APP
- 動態ip代理教你:如何用爬蟲實現前端頁面渲染爬蟲前端
- 教你如何使用MvcPager實現分頁效果MVC
- 教你如何用python實現學生通訊錄管理系統Python
- 頁面之間傳遞資料
- 通過 App Groups 實現程式間通訊APP
- 我對空資料頁面等公共頁面實現的一些想法
- 如何實現 mysql 匯出資料,驗證頁面正確性?MySql
- 如何在HarmonyOS NEXT中處理頁面間的資料傳遞?
- 如何優雅的實現訊息通訊?
- [MUI] mui框架實現頁面間傳值UI框架
- Vue 頁面狀態保持頁面間資料傳輸的一種方法Vue
- 教你如何使用flask實現ajax資料入庫Flask
- 在 OpenResty 裡實現程式間通訊REST
- Restcloud ETl資料通過時間戳實現增量資料同步RESTCloud時間戳
- 說說在 Vue.js 中如何實現元件間通訊Vue.js元件
- 教你C語言實現通訊錄的詳細程式碼C語言
- Webview獨立程式並通過AIDL實現資料通訊WebViewAI
- 不同頁面通訊與跨域跨域
- 教你如何寫第一個jsp頁面JS
- 教你如何運用python實現學生資訊管理系統Python
- VUE 元件間通訊---單向資料流Vue元件
- 千萬條資料,Stack Overflow 是如何實現快速分頁的?
- Python中使用共享變數+訊號量實現程序間的實時通訊Python變數
- iframe父子頁面通訊解決方案
- SAP Commerce開發之如何找到某個頁面對應的JSP實現頁面JS