微信小程序webview跳轉(zhuǎn)小程序內(nèi)路由

微信小程序是一種全新的連接用戶與服務(wù)的方式常侣,它可以在微信內(nèi)被便捷地獲取和傳播墩蔓,同時具有出色的使用體驗。同時提供一系列工具幫助開發(fā)者快速接入并完成小程序開發(fā)魏滚。關(guān)于如何注冊配置就不多言了评抚,本文主要還是體驗了下web-view的功能豹缀。

web-view詳解

有了這個組件之后伯复,小程序可以很好的嵌入一些頁面,可以環(huán)境小程序size告急的問題邢笙,同樣也使開發(fā)更加便捷啸如,畢竟小程序開發(fā)者基本都對前端開發(fā)較為了解。

web-view能力

說再多還是需要去看官方文檔氮惯,web-view文檔,

兼容

首先就需要注意:兼容問題叮雳,版本庫和對應(yīng)版本比例

基礎(chǔ)庫 1.6.4 開始支持,低版本需做兼容處理妇汗,
個人類型與海外類型的小程序暫不支持使用帘不。

目前而言,基本80%的用戶會升級微信杨箭,所以其實不必擔(dān)心版本問題寞焙,官方截止2017-12-01提供的數(shù)據(jù)也說明88%的用戶支持web-view

使用

web-view 組件是一個可以用來承載網(wǎng)頁的容器互婿,會自動鋪滿整個小程序頁面捣郊;

屬性:srcString類型,是一個網(wǎng)站的url慈参,默認值是none呛牲,webview 指向網(wǎng)頁的鏈接。需登錄小程序管理后臺配置域名白名單驮配。

<!-- wxml -->
<!-- 指向微信公眾平臺首頁的web-view -->
<web-view src="https://mp.weixin.qq.com/"></web-view>

可以配合Page實例的onLoad方法來獲取url的具體值娘扩,也就是一個微信小程序頁面中只有一個web-view,但是這個web-view的內(nèi)容可以根據(jù)上一個頁面?zhèn)鬟f的參數(shù)來獲取頁面URL壮锻,后面會講如何實踐畜侦,

官方提供如下接口:

  • web-view和小程序的通信

1. 由小程序到web-view,其實本質(zhì)上WEB-VIEW也是小程序的一個頁面,所以小程序到web-view是正常的小程序間的通信躯保,通過wx.navigateTowx.redirectTo澎语,帶上url參數(shù),query參數(shù)就像正常url的參數(shù)一樣跟著后面途事,然后在web-view的頁面的Page實例里面通過onLoad的方法的參數(shù)來獲取url的值,設(shè)置給web-viewsrc屬性為改值即可擅羞。
2. 由web-view到小程序尸变,由于在web-view的跳轉(zhuǎn)通常是在src對應(yīng)的網(wǎng)頁中的操作來處理的,所以需要結(jié)合jssdk來處理减俏,不需要wx.config配置召烂,直接通過script標簽來引入[https://res.wx.qq.com/open/js/jweixin-1.3.0.js](http://link.zhihu.com/?target=https%3A//res.wx.qq.com/open/js/jweixin-1.3.0.js),就可以使用wx.miniProgram.navigateTo娃承、wx.miniProgram.navigateBack奏夫、wx.miniProgram.switchTab怕篷、wx.miniProgram.reLaunchwx.miniProgram.redirectTo接口酗昼,就像小程序之間的跳轉(zhuǎn)一樣廊谓,單是只能在當(dāng)前小程序頁面內(nèi)跳轉(zhuǎn)。

  • 支持以下部分JSSDK接口圖像麻削、音頻蒸痹、搖一搖、地理位置等信息呛哟,具體可以查看web-view文檔,不過這些需要通過wx.config來授權(quán)叠荠,就和服務(wù)號開發(fā)類似。
  • 用戶分享時可獲取當(dāng)前<web-view/>URL扫责,即在onShareAppMessage回調(diào)中返回webViewUrl參數(shù)榛鼎。
Page({
  onShareAppMessage(options) {
    console.log(options.webViewUrl)
  }
}) 

  • 在網(wǎng)頁內(nèi)可通過window.__wxjs_environment變量判斷是否在小程序環(huán)境。

// web-view下的頁面內(nèi) console.log(window.__wxjs_environment === 'miniprogram') // true

web-view實踐

在目前實踐了部分web-view的功能公给,

//index.js
Page({
    data: {
       url: 'https://test.com'
    },
    onLoad: function(options){
        options.url ? this.setData({url: options.url}) : wx.navigateBack({delta: 2});

    }
});

//index.wxml
<web-view src="{{url}}"></web-view>

在這個web-view中借帘,指向的就是https://test.com的內(nèi)容,所以在在https://test.com中跳轉(zhuǎn)出回到小程序淌铐,需要修改https://test.com中的JavaScript,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test</title>
    <link rel="stylesheet"  />
</head>
<body>
    <div class="app">
        <h1>webview-wechat-detail</h1>
        <p>
            detail
        </p>
        <button type="button" id="btn">返回小程序</button>
    </div>
    <script src="https://test.com/jquery.js"></script>
    <script src="https://res.wx.qq.com/open/js/jweixin-1.3.0.js"></script>
    <script>
        /* eslint-disable */
$(function(){
    doucument.cookie = 'bb=bbbbbb';
    $('#btn').on('click',function(s) {
        document.cookie = 'aa=ssssss';
        wx.miniProgram.navigateTo({
            url:'/pages/index?test=testtest',
            success: function(){
                console.log('success')
            },
            fail: function(){
                console.log('fail');
            },
            complete:function(){
                console.log('complete');
            }

            });
        });
    });
    </script>
</body>
</html>

如果需要使用一些其他的的jssdk的方法肺然,那就需要參照公眾號的開發(fā)配置了。

web-view采坑

由于很多使用中的一些問題

1.打開的域名沒有在小程序管理后臺設(shè)置業(yè)務(wù)域名(注意是業(yè)務(wù)域名腿准,不是服務(wù)器域名)
2.打開的頁面必須為https服務(wù)
3.打開的頁面302過去的地址也必須設(shè)置過業(yè)務(wù)域名
4.web-view空白問題际起,請升級微信客戶端到 6.5.16
5.頁面可以包含iframe,但是iframe的地址必須為業(yè)務(wù)域名
6.web-view不支持支付能力吐葱,web-view的API能力見web-view的文檔說明
7.開發(fā)者自己檢查自己的https服務(wù)是否正常街望,測試方法:普通瀏覽器打開對應(yīng)的地址
8.如果web-view使用了公眾號授權(quán)的服務(wù),開發(fā)者工具提示網(wǎng)頁開發(fā)者的問題弟跑,請見:公眾號開發(fā)
其他的問題注意:

  1. 每個頁面只能有一個<web-view/>灾前,<web-view/>會自動鋪滿整個頁面,并覆蓋其他組件孟辑,小程序?qū)ebview的監(jiān)控狀態(tài)基本沒有哎甲,只能設(shè)置src設(shè)置url。
  2. 關(guān)于小程序和web-view的通信饲嗽,<web-view/> → 小程序只能通過JSSDK 1.3.0提供的接口返回小程序頁面炭玫,設(shè)置參數(shù)來傳值,反之貌虾,小程序到webview也是一樣的吞加,只能是src的路徑帶上參數(shù);
  3. web-view不支持支付能力,是指無法喚起小程序的直接支付窗口,對于h5的那套支付應(yīng)該是支持的衔憨,但是web-view 里邊沒法使用 微信支付的 JSAPI叶圃,也就是可能可以h5的相關(guān)的的支付中心來支付;
  4. 關(guān)于層級巫财,在webview中可以無限跳轉(zhuǎn)盗似,對于導(dǎo)航條返回和物理鍵返回都會回到上一個頁面直到退出webview,就像history.back平项。
  5. webview中的html的title會自動放到小程序的頭部作為標題赫舒;
  6. webview中可以正常使用ajax之類的操作。
  7. 一些可能的問題問題匯總

作者:caoweiju
原文地址:關(guān)于微信小程序webview的使用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闽瓢,一起剝皮案震驚了整個濱河市接癌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扣讼,老刑警劉巖缺猛,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異椭符,居然都是意外死亡荔燎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門销钝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來有咨,“玉大人,你說我怎么就攤上這事蒸健∽恚” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵似忧,是天一觀的道長渣叛。 經(jīng)常有香客問我,道長盯捌,這世上最難降的妖魔是什么淳衙? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮饺著,結(jié)果婚禮上滤祖,老公的妹妹穿的比我還像新娘。我一直安慰自己瓶籽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布埂材。 她就那樣靜靜地躺著塑顺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上严拒,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天扬绪,我揣著相機與錄音,去河邊找鬼裤唠。 笑死挤牛,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的种蘸。 我是一名探鬼主播墓赴,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼航瞭!你這毒婦竟也來了诫硕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤刊侯,失蹤者是張志新(化名)和其女友劉穎章办,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滨彻,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡藕届,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了亭饵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片休偶。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖冬骚,靈堂內(nèi)的尸體忽然破棺而出椅贱,到底是詐尸還是另有隱情,我是刑警寧澤只冻,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布庇麦,位于F島的核電站,受9級特大地震影響喜德,放射性物質(zhì)發(fā)生泄漏山橄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一舍悯、第九天 我趴在偏房一處隱蔽的房頂上張望航棱。 院中可真熱鬧,春花似錦萌衬、人聲如沸饮醇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朴艰。三九已至观蓄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祠墅,已是汗流浹背侮穿。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毁嗦,地道東北人亲茅。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像狗准,于是被迫代替她去往敵國和親克锣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容