JEPaaS 社区

 找回密码
 立即注册
JEPaaS低代码平台-官网
查看: 2440|回复: 0

APP跳转外部链接并数据通信

[复制链接]

54

主题

77

帖子

354

积分

管理员

JEPaaS专家

Rank: 9Rank: 9Rank: 9

积分
354
发表于 2021-6-23 18:17:04 | 显示全部楼层 |阅读模式
一、案例效果               
          APP外部链接跳转到自定义的页面,外部地址需要头部引入mui的js代码
                 
二、实现思路
          例子:表单中的按钮事件触发弹出个外部链接
           
1. 点击表单中按钮的自定义功能脚本事件,执行跳转b页面并携带参数
       2. b页面获得到参数进行业务逻辑处理;
       3. b页面处理完业务逻辑派发事件到表单中的监听方法;
       4. 表单监听方法接收到b页面派发的事件处理业务逻辑;


三、操作步骤
1. 表单页面跳转b页面携带参数,在功能脚本中添加该方法;
              
  1. <font color="#696969"> JE.openWindow({
  2.         url: 'http://baidu.com', //跳转b页面的地址
  3.         id: 'openWindow_baidu', // 绑定跳转的b的面板id,表单通过该id进行数据传输
  4.         extras: { // 自定义跳转到b页面需要携带的参数
  5.             fnName: 'tabFn',  // b页面根据业务逻辑,通过调用tabFn事件名通知表单并携带数据
  6.             a_Id: plus.webview.currentWebview().id, // 表单页面的id,b页面拿到该id才能和表单传输数据
  7.         }
  8.     });
  9.     function dochange(e) {
  10.         console.log('外部链接事件传递的参数', e);
  11.         alert('成功监听到外部链接传递的事件');
  12.         // 拿到b页面中的e,执行业务中的代码
  13.         // 处理完业务后删除掉该事件
  14.         window.removeEventListener('tabFn', dochange);
  15.     }
  16.     // 监听b页面传递过来的数据处理业务逻辑
  17.     window.addEventListener('tabFn', dochange);</font>
复制代码

2. b页面获得到参数进行业务逻辑处理
  1. const b_webview = plus.webview.currentWebview(); // 获取表单页面跳转过来的传递的参数,当前b页面面板
  2.     const a_id = b_webview.a_Id; // 表单页面的面板id;
  3.     const a_fnName = b_webview.fnName; // 表单页面的监听事件名称
复制代码
3. b页面处理完业务逻辑派发事件到表单页面
  1.   const a_webview = plus.webview.getWebviewById(a_id); // 根据当前b面板的id获取到表单面板
  2.     const datas = {test: 'b页面的测试数据'}
  3.     mui.fire(a_webview, a_fnName, {datas}); // 向表单页面派发事件,触发表单页面的监听
复制代码
4.表单接收到b页面派发的事件处理业务逻辑
已经在第一步注册过该事件,拿到b页面的数据就可处理对应的业务逻辑

  1. function dochange(e) {
  2.         console.log('外部链接事件传递的参数', e);
  3.         alert('成功监听到外部链接传递的事件');
  4.         // 拿到b页面中的e,执行业务中的代码
  5.         // 处理完业务后删除掉该事件
  6.         window.removeEventListener('tabFn', dochange);
  7.     }
  8.     // 监听b页面传递过来的数据处理业务逻辑
  9.     window.addEventListener('tabFn', dochange);
复制代码


四、相关代码

  1. /**
  2.      * 表单页面跳转到b页面 ---> 当前是表单页面的代码
  3.      */
  4.     JE.openWindow({
  5.         url: 'http://baidu.com', //跳转b页面的地址
  6.         id: 'openWindow_baidu', // 绑定跳转的b的面板id,表单通过该id进行数据传输
  7.         extras: { // 自定义跳转到b页面需要携带的参数
  8.             fnName: 'tabFn',  // b页面根据业务逻辑,通过调用tabFn事件名通知表单并携带数据
  9.             a_Id: plus.webview.currentWebview().id, // 表单页面的id,b页面拿到该id才能和表单传输数据
  10.         }
  11.     });
  12.     function dochange(e) {
  13.         console.log('外部链接事件传递的参数', e);
  14.         alert('成功监听到外部链接传递的事件');
  15.         // 拿到b页面中的e,执行业务中的代码
  16.         // 处理完业务后删除掉该事件
  17.         window.removeEventListener('tabFn', dochange);
  18.     }
  19.     // 监听b页面传递过来的数据处理业务逻辑
  20.     window.addEventListener('tabFn', dochange);


  21.     /**
  22.      * b页面完成业务逻辑后触发表单页面
  23.      */
  24.     const b_webview = plus.webview.currentWebview(); // 获取表单页面跳转过来的传递的参数,当前b页面面板
  25.     const a_id = b_webview.a_Id; // 表单页面的面板id;
  26.     const a_fnName = b_webview.fnName; // 表单页面的监听事件名称
  27.     const a_webview = plus.webview.getWebviewById(a_id); // 根据当前表单面板的id获取到表单面板
  28.     const datas = {test: 'b页面的测试数据'}
  29.     mui.fire(a_webview, a_fnName, {datas}); // 向表单页面派发事件,触发表单页面的监听
复制代码



五、关键字,相关问题           
              数据通信
          外部链接
          跳转
          打开新页面

        

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号 )

GMT+8, 2024-5-3 15:49 , Processed in 0.063235 second(s), 20 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表