小程序 webView 內嵌h5


  前端時間搞了小程序跑h5的流程,趁着這段稍微空閑的時間整理下,和大家一起分享下

  1.內嵌h5,小程序場景判斷

    wx.miniprogram.getev(fn)  ,   該方法是微信提供的api,注意的是,該方法是異步的 、引用微信的JS-SDK版本要相應版本(推薦用JSSDK 1.3.2或者以上),否則會出現方法不存在,或者其他問題。

  2 web-view 中轉,寫個公用跳轉頁面(用的是wepy框架)

  

<template>
    <web-view src="{{pageUrl}}{{params}}"> </web-view>
</template>

<script>
import wepy from "wepy"
import { USER_INFO } from "../utils/constant";

export default class webView extends wepy.page{
   
    data = {
       pageUrl: '',
       mall_cookie: '',
       params:'',
    }
   
    onLoad(option){
        var pageUrl = decodeURIComponent(option.pageUrl)
            pageUrl = pageUrl.replace('http:',"https:")
        var userInfo = wepy.getStorageSync(USER_INFO)
        var hasPrama = pageUrl.indexOf('?')>-1?true: false
        this.pageUrl = pageUrl
        this.params = hasPrama?'&ishead=false': '?ishead=false'
  
        
        this.$apply()
    }
}
</script>

<style lang="less">

</style>

  3。 登錄狀態傳入

    進入h5頁面前,訪問后台一個寫入登錄信息cookie的接口,然后后台再重定向對應頁面中即可。 這里面有兩種情況,

         . ios的webview  cookie緩存和微信的h5緩存是同一套,也就是說你再微信中打開過h5有緩存的話,那么在小程序中進入h5也是有緩存的

          . 安卓的是兩套,微信的h5緩存和小程序里面的互不影響。

    安全 相關: 這里可能涉及到安全問題以及信息泄露的問題,這種結合微信授權的方式,生成自己對應的tooken,然后根據tooken去拿到對應的用戶信息,當然這個里面只是一個初步實現方案。不過因為其有一定的時效性,而且tooken也不一定那么好拿到,基本要求也算滿足的

    傳入方式: 通過鏈接的拼接形式,如上面代碼中的參數拼接。就可以從h5頁面拿到小程序的信息,當然你跳轉小程序的時候,也可以通過這種鏈接形式傳回來。

  4.嚴格保持里面跳轉是https跳轉, 如果訪問的是http鏈接或者是重定向到其他的http鏈接,那么就會出現業務域名不匹配的問題,導致頁面掛掉

  5 h5頁面返回小程序, 官方也給出了相應api

    wx.miniProgram.navigateTo  等  ,可參考對應文檔  https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM