zoukankan      html  css  js  c++  java
  • 小程序webview 的一些问题记录 webview 小程序支付 webview 小程序分享

    小程序内嵌webview

    碰到的问题

    • webview 中的 h5 不能使用sdk 的微信支付

    • 页面的返回前进相关问题

    • 小程序转发

    • 页面的返回前进相关问题

    在h5 端使用sdk 提供的api 跳转到小程序中的页面,并将url 以url参数的形式传过去

     function navigateToWebWiew(replaceHash) {
          // h5中的方法 
          let nowHash = window.location.hash
          let webwiewUrl = window.location.href.replace(nowHash, replaceHash)
          wx.miniProgram.navigateTo({
            url: `/pages/webwiew/webwiew?url=${encodeURIComponent(webwiewUrl)}`
          })
        }
    

    h5 跳转时,一般还需要区分小程序 和 h5 环境
    文档有提供案例

    
    // 我的
    let isApplets = window.__wxjs_environment === 'miniprogram'
      if( isApplets === true ){  // if(isApplet) 结果不一致 ,没整明白
        isApplet = true 
      }else{
        isApplet = false
      }
    
    // 跳转时根据条件判断到底是要跳小程序页面还是正常路由
    onClick={e => { isApplet ? window.navigateToWebWiew('/orderdetail') : history.push('/orderdetail') }}
    
    

    这样就简单的解决小程序中页面返回问题
    新问题来了,小程序的页面栈有限,最多十层
    没有搬到啥好方法

    // 菜鸡做法
     if (getCurrentPages().length > 9) { // 如果当前页面栈 大于 9 , 挺影响体验的,不过在适合的地方配合 redirectTo 等 一般不会达到这么多
          wx.reLaunch({
            url: '../webwiew/webwiew?url=' + options.url,
          })
        } else {
          this.setData({
            url: decodeURIComponent(options.url)
          })
        }
    
    

    支付问题

    思路和跳转页面差不多
    将支付相关参数传到 小程序的支付页(如 pay.js)
    请求后端的支付配置接口得到小程序支付api 需要的相关参数
    请求完事
    常见问题都是支付参数错误

    小程序转发分享

    转发分享一般都需要带上标题,如商品 标题
    许多人做法是从 onload 的 option.url 中 正则出 如 商品id
    其实可以直接在分享转发的函数里拿到 h5 当前页面的url

      /**
       * 用户点击右上角分享
       */
      onShareAppMessage: function () {
    
        let id = options.webViewUrl.match('正则')
        let title = '默认标题'
        if (id) {
          title = await this.getTitle(id[1])
        }
        return {
          title,
          path: 'pages/webwiew/webwiew?url=' + encodeURIComponent(options.webViewUrl)
        }
      }
    
    
  • 相关阅读:
    react.js+axios跨域
    O2O项目之一 环境搭配
    跟scss相关的两个包
    [nodemon] app crashed
    解决node.js链接数据库时出现的报错 --- client does not support authentication
    在Xshell 运行angular 项目时,找不到node-sass模块,安装node-sass模块时,又出现权限问题
    ajax请求数据时,get和post的区别
    web前端如何性能优化提高加载速度
    js数组去重
    前端跨域
  • 原文地址:https://www.cnblogs.com/duoban/p/13902613.html
Copyright © 2011-2022 走看看