• 小程序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)
        }
      }
    
    
  • 相关阅读:
    unity opaque sort
    Vulkan --vulkan in powervr
    转载:C#中的Invoke理解一
    C#:实现快捷键自定义设置(转)
    C#中Thread.sleep() 【转载】
    winform窗体最大化、最小化、还原
    深入C#判断操作系统类型的总结详解(转载)
    2016年7月25日----总结(键盘点击事件、判断系统版本)
    正则表达式理解
    C# PInvoke(DllImport使用) 进阶教程(一)转
  • 原文地址:https://www.cnblogs.com/duoban/p/13902613.html
Copyright © 2020-2023  润新知