zhifuye.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  6. <title>网络网页</title>
  7. <style type="text/css">
  8. .btn {
  9. display: block;
  10. margin: 20px auto;
  11. padding: 5px;
  12. background-color: #007aff;
  13. border: 0;
  14. color: #ffffff;
  15. height: 40px;
  16. width: 200px;
  17. }
  18. .btn-red {
  19. background-color: #dd524d;
  20. }
  21. .btn-yellow {
  22. background-color: #f0ad4e;
  23. }
  24. .desc {
  25. padding: 10px;
  26. color: #999999;
  27. }
  28. .post-message-section {
  29. visibility: hidden;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <p class="desc">web-view 组件加载网络 html 示例。点击下列按钮,跳转至其它页面。</p>
  35. <div class="btn-list">
  36. <button class="btn" type="button" data-action="navigateTo">navigateTo</button>
  37. <button class="btn" type="button" data-action="redirectTo">redirectTo</button>
  38. <button class="btn" type="button" data-action="navigateBack">navigateBack</button>
  39. <button class="btn" type="button" data-action="reLaunch">reLaunch</button>
  40. <button class="btn" type="button" data-action="switchTab">switchTab</button>
  41. </div>
  42. <div class="post-message-section">
  43. <p class="desc">网页向应用发送消息,注意:小程序端应用会在此页面后退时接收到消息。</p>
  44. <div class="btn-list">
  45. <button class="btn btn-red" type="button" id="postMessage">postMessage</button>
  46. </div>
  47. </div>
  48. <script type="text/javascript">
  49. var userAgent = navigator.userAgent;
  50. if (userAgent.indexOf('AlipayClient') > -1) {
  51. // 支付宝小程序的 JS-SDK 防止 404 需要动态加载,如果不需要兼容支付宝小程序,则无需引用此 JS 文件。
  52. document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
  53. } else if (/QQ/i.test(userAgent) && /miniProgram/i.test(userAgent)) {
  54. // QQ 小程序
  55. document.write('<script type="text/javascript" src="https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"><\/script>');
  56. } else if (/miniProgram/i.test(userAgent) && /micromessenger/i.test(userAgent)) {
  57. // 微信小程序 JS-SDK 如果不需要兼容微信小程序,则无需引用此 JS 文件。
  58. document.write('<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"><\/script>');
  59. } else if (/toutiaomicroapp/i.test(userAgent)) {
  60. // 头条小程序 JS-SDK 如果不需要兼容头条小程序,则无需引用此 JS 文件。
  61. document.write('<script type="text/javascript" src="https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js"><\/script>');
  62. } else if (/swan/i.test(userAgent)) {
  63. // 百度小程序 JS-SDK 如果不需要兼容百度小程序,则无需引用此 JS 文件。
  64. document.write('<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.18.js"><\/script>');
  65. } else if (/quickapp/i.test(userAgent)) {
  66. // quickapp
  67. document.write('<script type="text/javascript" src="https://quickapp/jssdk.webview.min.js"><\/script>');
  68. }
  69. if (!/toutiaomicroapp/i.test(userAgent)) {
  70. document.querySelector('.post-message-section').style.visibility = 'visible';
  71. }
  72. </script>
  73. <!-- uni 的 SDK -->
  74. <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.1/index.js"></script>
  75. <script type="text/javascript">
  76. document.addEventListener('UniAppJSBridgeReady', function() {
  77. document.querySelector('.btn-list').addEventListener('click', function(evt) {
  78. var target = evt.target;
  79. if (target.tagName === 'BUTTON') {
  80. var action = target.getAttribute('data-action');
  81. switch (action) {
  82. case 'switchTab':
  83. uni.switchTab({
  84. url: '/pages/tabBar/API/API'
  85. });
  86. break;
  87. case 'reLaunch':
  88. uni.reLaunch({
  89. url: '/pages/tabBar/component/component'
  90. });
  91. break;
  92. case 'navigateBack':
  93. uni.navigateBack({
  94. delta: 1
  95. });
  96. break;
  97. default:
  98. uni[action]({
  99. url: '/pages/component/button/button'
  100. });
  101. break;
  102. }
  103. }
  104. });
  105. document.getElementById('postMessage').addEventListener('click', function() {
  106. uni.postMessage({
  107. data: {
  108. action: 'message'
  109. }
  110. });
  111. });
  112. });
  113. </script>
  114. </body>
  115. </html>