教你如何實現頁面間的資料通訊
場景描述
某些情況下,開發者可能需要實現頁面間的訊息傳遞來獲取資料,例如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 實現多頁面通訊
- 頁面間通訊與資料共享解決方案簡析
- 如何實現瀏覽器標籤頁之間的通訊瀏覽器
- postMessage實現頁面通訊介紹
- 小程式頁面間通訊——EventChannel(資料量多時)
- 父子頁面之間跨域通訊的方法跨域
- .net如何實現頁面間的引數傳遞
- 百度小程式之間的頁面通訊
- WPF使用事件聚合器,實現任意頁面跨頁通訊事件
- 如何利用javascript實現頁面間互相傳值JavaScript
- .NET與JSP頁面之間訊息通訊(跨域,使用html5的postMessage實現)JS跨域HTML
- 在如何實現兩個JBoss之間的訊息通訊?
- uni-app上下級頁面資料雙向通訊APP
- 教你如何運用python實現不同資料庫間資料同步功能Python資料庫
- 如何實現臺達PLC與上位機的資料通訊?
- 實現多個標籤頁之間通訊的幾種方法
- 對空資料頁面等公共頁面實現的一些思考
- 實現不同程式之間的通訊
- 程式間通訊的另類實現
- 動態ip代理教你:如何用爬蟲實現前端頁面渲染爬蟲前端
- 頁面之間傳遞資料
- 我對空資料頁面等公共頁面實現的一些想法
- 如何優雅的實現訊息通訊?
- 如何實現 mysql 匯出資料,驗證頁面正確性?MySql
- 【Android】在Activity頁面中如何實現Fragment資料的緩載入AndroidFragment
- jive 問題 如何在jsp頁面實現資料庫資訊的更新??JS資料庫
- 使用AIDL實現程式間的通訊AI
- 教你如何用python實現學生通訊錄管理系統Python
- 教你如何使用MvcPager實現分頁效果MVC
- 不同頁面通訊與跨域跨域
- 通過 App Groups 實現程式間通訊APP
- [MUI] mui框架實現頁面間傳值UI框架
- 跨頁面通訊的各種姿勢
- Vue 頁面狀態保持頁面間資料傳輸的一種方法Vue
- 在 OpenResty 裡實現程式間通訊REST
- 用NSConnection實現不同程式間的通訊
- Android 框架煉成 教你如何寫元件間通訊框架EventBusAndroid框架元件