当前位置:   article > 正文

uniapp中加载Echarts图表H5可以显示正常图表, 打包app图表不显示的问题_uniapp打包发布至app端 echarts图表不显示问题

uniapp打包发布至app端 echarts图表不显示问题

uniapp 打包成apk echarts需要使用render.js

在使用 UniApp 将应用打包成 APK 时,如果你在应用中使用了 ECharts 图表库,可能会需要使用 render.js 文件。ECharts 是一个基于 JavaScript 的数据可视化库,它可以用于在网页中创建各种类型的交互式图表和数据可视化展示。

在 UniApp 中,由于多端适配的特性,ECharts 需要通过 render.js 文件来进行多端的适配工作。这个 render.js 文件会根据当前的运行环境来选择合适的渲染方式,以确保 ECharts 在不同平台下都能正常显示和交互。这意味着在打包成 APK 时,需要确保 render.js 文件能够正确地适配到 Android 平台。

因此,如果你在 UniApp 中使用 ECharts,并且希望将应用打包成 APK,确保在打包过程中包含了 render.js 文件,并且在使用 ECharts 时按照文档要求正确配置 render.js,以确保图表库能够在 APK 中正常运行和显示。

  1. <template>
  2. <view class="content">
  3. <view
  4. :prop="option"
  5. :change:prop="echarts.updateEcharts"
  6. id="echartsa"
  7. class="echarts"
  8. ></view>
  9. </view>
  10. </template>
  11. <script>
  12. export default {
  13. props: {
  14. echartsPhaseData1: Object,
  15. phaseCont:String
  16. },
  17. data() {
  18. return {
  19. seriesTemp:[[],[],[]],
  20. option : {
  21. animation: false,
  22. title:{
  23. subtext: "t(ms)",
  24. right: 0,
  25. bottom: 0,
  26. subtextStyle: {
  27. fontSize: 12,
  28. fontWeight:"normal"
  29. },
  30. },
  31. grid: {
  32. top: 40,
  33. left: 20,
  34. right: 45,
  35. bottom: 4,
  36. show: true,
  37. borderColor:"#000",
  38. borderWidth:1,
  39. zlevel:99,
  40. containLabel: true
  41. },
  42. xAxis: [{
  43. name: '',
  44. nameTextStyle:{
  45. color:"#999"
  46. },
  47. type: 'category',
  48. boundaryGap: false,
  49. axisTick: {
  50. show:false,
  51. alignWithLabel: true
  52. },
  53. axisLine: {
  54. lineStyle: {
  55. color: "#000"
  56. }
  57. },
  58. axisLabel: {
  59. interval: 6,
  60. } ,
  61. splitLine: {
  62. show: true,
  63. },
  64. // prettier-ignore
  65. data: ['0', '', '', '', '', '', '', '','', '', '', '', '', '', '', '','', '', '', '', '', '', '', '','', '', '', '', '', '', '', '','', '', '', '', '', '', '', '','', '', '', '', '', '', '', '','', '', '', '', '', '', '', '','', '', '', '', '', '', '', '20']
  66. }],
  67. yAxis: [{
  68. name: 'U(V)',
  69. nameTextStyle:{
  70. color:"#999"
  71. },
  72. minorTick: {
  73. show: false
  74. },
  75. type: "value",
  76. axisTick: {
  77. show: false
  78. },
  79. splitLine: {
  80. show: true,
  81. },
  82. axisLine: {
  83. show: false,
  84. lineStyle: {
  85. color: "#000"
  86. }
  87. },
  88. }],
  89. series: [
  90. {
  91. type: 'line',
  92. showSymbol: false,
  93. smooth: 1,
  94. color:"#FFB900",
  95. clip: true,
  96. data: []
  97. },
  98. {
  99. type: 'line',
  100. showSymbol: false,
  101. smooth: 1,
  102. color:"#17874A",
  103. clip: true,
  104. data: []
  105. },
  106. {
  107. type: 'line',
  108. showSymbol: false,
  109. smooth: 1,
  110. color:"#CD3F3F",
  111. clip: true,
  112. data: []
  113. }
  114. ]
  115. },}
  116. },
  117. watch: {
  118. //watch事件监听,可以监听data里的值,可以监听props里传来的值
  119. phaseCont:{
  120. handler(newValue, oldValue) {
  121. },
  122. deep: true
  123. },
  124. echartsPhaseData1: {
  125. handler(newValue, oldValue) {
  126. },
  127. deep: true
  128. },
  129. },
  130. methods: {
  131. }
  132. }
  133. </script>
  134. <script module="echarts" lang="renderjs">
  135. let myChart
  136. export default {
  137. mounted() {
  138. if (typeof window.echarts === 'function') {
  139. this.initEcharts()
  140. } else {
  141. // 动态引入较大类库避免影响页面展示
  142. const script = document.createElement('script')
  143. // view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
  144. script.src = 'static/js/echarts.min.js'
  145. script.onload = this.initEcharts.bind(this)
  146. document.head.appendChild(script)
  147. }
  148. },
  149. methods: {
  150. func2(x) {
  151. x /= 10;
  152. return Math.sin(x) * Math.cos(x * 2 + 1) * Math.sin(x * 3 + 2) * 50;
  153. },
  154. generateData2() {
  155. let data = [];
  156. for (let i = 0; i <= 200; i += 0.1) {
  157. data.push([i, this.func2(i)]);
  158. }
  159. return data;
  160. },
  161. func3(x) {
  162. x /= 20;
  163. return Math.sin(x) * Math.cos(x * 2 + 1) * Math.sin(x * 3 + 2) * 50;
  164. },
  165. generateData3() {
  166. let data = [];
  167. for (let i = 0; i <= 200; i += 5) {
  168. data.push([i, this.func3(i)]);
  169. }
  170. return data;
  171. },
  172. initEcharts() {
  173. setTimeout(() => {
  174. myChart = echarts.init(document.getElementById('echartsa'))
  175. // 观测更新的数据在 view 层可以直接访问到
  176. myChart.setOption(this.option)
  177. myChart.resize()
  178. // this.option.series[1].data = "";
  179. },300)
  180. // 这里是用于窗口变化时的自适应,利用的是echarts自带的resize方法
  181. window.addEventListener('resize', () => {
  182. myChart.resize()
  183. });
  184. },
  185. updateEcharts(newValue, oldValue, ownerInstance, instance) {
  186. // 监听 service 层数据变更
  187. if(myChart) {
  188. setTimeout(() => {
  189. console.log(newValue,"series11")
  190. myChart.setOption(newValue)
  191. myChart.resize()
  192. },300)
  193. window.addEventListener('resize', () => {
  194. myChart.resize()
  195. });
  196. }
  197. },
  198. onClick(event, ownerInstance) {
  199. // 调用 service 层的方法
  200. ownerInstance.callMethod('onViewClick', {
  201. test: 'test'
  202. })
  203. }
  204. }
  205. }
  206. </script>
  207. <style>
  208. .echarts {
  209. width: 690upx;
  210. height: 434rpx;
  211. }
  212. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/612610
推荐阅读
相关标签
  

闽ICP备14008679号