无法在iOS版本的react-native webview中加载静态js文件和postMessage

时间:2018-07-16 07:25:18

标签: javascript ios reactjs react-native webview

我正在尝试在调试模式下使用chartjsjquery在iOS webview中显示图形,无论是本地还是从CDN服务js,webview都可以正常工作,但是在发行版中却不能完全可以。

我也尝试过将jquery和chartjs代码直接复制粘贴到script标签中,但仍然只能看到白屏。

在调试时,我也尝试使用window.postMessage,但我怀疑它也无法正常工作,因为我没有在Xcode中看到日志。我也曾尝试使用react-native issue 10865

中提到的window.postMessage修补版本

这是准系统html代码:

<html>
<head>
  <style>
    .chart-container {
      width: 100%;
      height: 100%;
    }
  </style>
</head>
<body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.js"></script>

  <div class="chart-container">
    <canvas id="chart"></canvas>
  </div>
  <script>
    var ctx = $("#chart")[0].getContext("2d");
    var chart = undefined;
    var stroke = '#06d092';

    chart = new Chart(ctx, {
      type: 'line',
      scaleSteps: 4,
      data: {
        datasets: [{
          label: 'Price',
          data: []
        }]
      }
    });

    document.addEventListener('message', function (e) {
      var graphData = JSON.parse(e.data);
      chart.data.datasets[0].data = graphData;
      chart.update({
        duration: 0
      });
    });

  </script>
</body>

</html>

但是相同的代码在调试模式下可以正常工作。

0 个答案:

没有答案