app web 互调js 的web源码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <button id="button" type="button" name="button">点 击</button>
  <div id="message"></div>
  <div>
    <span>尝试捕获错误信息:</span>
    <span id="errorMessage"></span>
  </div>

  <script type="text/javascript">
    document.getElementById('message').innerHTML = '<span>测试 APP webview 里能否执行 JS</span>';
  </script>

  <script type="text/template" id="template">
  <div>
    <span>站点:</span>
    <span>{{ site }}</span>
  </div>
  <div>
    <span>点击次数:</span>
    <span>{{ count }}</span>
  </div>
  <div>
    <span>方法名:</span>
    <span>{{ methodName }}</span>
  </div>
  <div>
    <span>方法类型:</span>
    <span>{{ methodType }}</span>
  </div>
  <div>
    <span>传入的参数:</span>
    <span>{{ params }}</span>
  </div>
  </script>
  <script type="text/javascript">
  // window.onload = function () {
    let count = 0;
    const buttonDom = document.getElementById('button');
    const messageDom = document.getElementById('message');
    const templateDom = document.getElementById('template');
    const errorMessageDom = document.getElementById('errorMessage');

    function method (params) {
      window.nativeMethod.financeMessageHandlers(params);
    }
    const methodName = 'window.nativeMethod.financeMessageHandlers';

    button.onclick = () => {
      // 自增点击次数
      count++;
      // 模板内容
      const template = templateDom.innerText;
      // 调用方法传入的参数
      const params = {
        type: 'NEW_PAGE',
        url: '/next-page',
        data: { isUSDT: 1 }
      };
      // 要写入的对象数据
      const data = {
        // 先写死安卓
        site: 'android',
        count,
        methodName,
        methodType: typeof method,
        params: JSON.stringify(params)
      };

      const nextTemplate = Object.keys(data).reduce((acc, cur) => {
        return acc.replace(new RegExp(`{{\\s*${cur}\\s*}}`, 'gm'), data[cur]);
      }, template);
      console.log('nextTemplate: ', nextTemplate)
      messageDom.innerHTML = nextTemplate;
      try {
        method(JSON.stringify(params));
      } catch (e) {
        errorMessageDom.innerHTML = e.toString();
      }
    }
  // }
  </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值