HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    h5與原生交互的幾種方式(h5與原生交互的幾種方式有哪些)

    發(fā)布時(shí)間:2023-04-27 21:27:10     稿源: 創(chuàng)意嶺    閱讀: 281        

    大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于h5與原生交互的幾種方式的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀企業(yè),服務(wù)客戶遍布全國(guó),設(shè)計(jì)相關(guān)業(yè)務(wù)請(qǐng)撥打175-8598-2043,或微信:1454722008R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    本文目錄:R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    • 1、iOS和h5交互(WKWebView,UIWebView)R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    • 2、H5與小程序數(shù)據(jù)交互R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    • 3、H5&&Android交互R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    • 4、h5掉ios原生的方法R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    h5與原生交互的幾種方式(h5與原生交互的幾種方式有哪些)

    一、iOS和h5交互(WKWebView,UIWebView)R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    app 混合開(kāi)發(fā)場(chǎng)景中 常常涉及到h5 和原生數(shù)據(jù)通信,大致分為2類 一個(gè)是 原生 向 h5 主動(dòng)通信,一個(gè)是 h5 主動(dòng)向 原生通信。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    iOS 中加載h5的 控件有2種,UIWebView 和 WKWebView,目前新提交的app 必須使用WKWebView 才能提交審核。已經(jīng)上架審核成功的app 目前沒(méi)有強(qiáng)制要求必須用WKWebView。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    原生通過(guò)監(jiān)聽(tīng)url 變化實(shí)現(xiàn),當(dāng)url 變化的時(shí)候 ,會(huì)觸發(fā)R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    h5 主要邏輯如下R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    除了 通過(guò)url 變化 的監(jiān)聽(tīng)外,我們還有其他方法,比如通過(guò) JSContext 向webView 注入。具體步驟如下R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    原生邏輯:R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    第一步:新建1個(gè)繼承 JSExport 的 代理 ,新建1個(gè)繼承該協(xié)議的類,協(xié)議中 opencame 為和 前端約定好的 通訊方法R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    第二步:webview 加載成功后 ,在 - (void)webViewDidFinishLoad:(UIWebView *)webView 注入,注入對(duì)象名稱 為 cth5bridgeR54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    第三步:h5 調(diào)用方式如下,cth5bridge 為注入對(duì)象名稱,opencame 為 約定的方法R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    假設(shè)1個(gè)場(chǎng)景,用戶訪問(wèn)h5 界面情況下,我們要通知 用戶token 要更新R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    原生主要邏輯R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    h5 主要邏輯R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    假設(shè)1個(gè)場(chǎng)景,用戶點(diǎn)擊1個(gè)活動(dòng)baner,通知原生 以一個(gè)新的界面 打開(kāi)1個(gè)外部活動(dòng)h5界面R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    和上面類似,我們也可以在 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler 通過(guò)監(jiān)聽(tīng) url 變化來(lái)實(shí)現(xiàn)R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    原生主要邏輯R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    h5 主要邏輯R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    我們也可以這么做R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    第一步 原生 注冊(cè) 監(jiān)聽(tīng)方法 showH5R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    第二步 H5 調(diào)用 和原生約定好的方法 showH5,h5 處理的時(shí)候要區(qū)分 iOS 和 android,下面 只是考慮iOSR54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    第三步 原生在 - (void)userContentController:(nonnull WKUserContentController *)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message 進(jìn)行監(jiān)聽(tīng)R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    和上面類似,假設(shè)1個(gè)場(chǎng)景 通知H5 刷新用戶tokenR54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    updatetoken 是和前端H5 約定好的 通信方法,123是傳遞的數(shù)據(jù),一般 以 json 字符串傳遞R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    原生主要邏輯R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    H5主要邏輯R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    需要在windows 上 綁定方法R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    參考鏈接: https://blog.csdn.net/dolacmeng/article/details/79623708 R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    二、H5與小程序數(shù)據(jù)交互R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     功能已通過(guò)原生+vue混合開(kāi)發(fā)的方式實(shí)現(xiàn)了,現(xiàn)需要將這個(gè)功能原封不動(dòng)的搬到微信小程序。綜合各方面評(píng)估,選擇了微信小程序套webview的方式實(shí)現(xiàn)(若時(shí)間允許,建議還是通過(guò)小程序?qū)崿F(xiàn))。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     采用小程序webview的方式,可以復(fù)用大部分H5頁(yè)面,但H5調(diào)用的原生方法還是需要重新實(shí)現(xiàn)。實(shí)現(xiàn)方式主要分以下幾種情況(當(dāng)然也可以通過(guò)jssdk的方式去實(shí)現(xiàn) https://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E5%8F%A3 ,但不在本文討論范圍內(nèi)):R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     (1) 獲取照片,可通過(guò)html的input標(biāo)簽實(shí)現(xiàn);R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     (2) 獲取經(jīng)緯度,可通過(guò)webview的url拼接參數(shù)實(shí)現(xiàn);R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    (3) 人臉識(shí)別,可通過(guò)H5調(diào)起刷臉小程序的方式實(shí)現(xiàn)。 R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     下面主要描述下第3種情況的實(shí)現(xiàn)方式。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     H5與小程序交互所涉及的數(shù)據(jù)部分主要包括兩塊:R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     (1)H5如何將數(shù)據(jù)傳給小程序?R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

       url參數(shù)拼接。 R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     (2)小程序如何將數(shù)據(jù)傳給H5?R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

       wx.setStorage及wx.getStorage。 R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     詳細(xì)流程如圖所示。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

     webview小程序pageA調(diào)起人臉小程序pageB,pageB回退到pageA。因?yàn)閜ageA重新設(shè)置了webview的url,其所嵌套的H5與歷史H5頁(yè)面無(wú)法進(jìn)行數(shù)據(jù)共享,導(dǎo)致業(yè)務(wù)功能無(wú)法繼續(xù)。解決辦法就是調(diào)起人臉小程序之前,在H5頁(yè)面先將必要的信息通過(guò) localStorage.setItem 保存,人臉識(shí)別結(jié)束回到H5頁(yè)面時(shí),再通過(guò) localStorage. getItem 獲取所需要的業(yè)務(wù)數(shù)據(jù)。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    三、H5&&Android交互R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    JS調(diào)用Android原生方法,參數(shù)須是Java的內(nèi)置類型:int、String等,若是JavaScript對(duì)象,需字符串化,否則Android無(wú)法正確接收;R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    JS調(diào)用Android原生方法,返回值是內(nèi)置類型:int、String等,JS能夠正確接收。若是Java自定義類型,則JS接收不到正確數(shù)據(jù);R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    JS可以通過(guò)Android原生方法的返回值獲取內(nèi)置類型的參數(shù),如StringR54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    若需要互傳復(fù)雜類型的對(duì)象,雙方須以String對(duì)媒介,以各自語(yǔ)言的Json工具類進(jìn)行相互轉(zhuǎn)化; R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    四、h5掉ios原生的方法R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    方法如下:R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    之前也總結(jié)過(guò)h5調(diào)用原生的方法,但是寫(xiě)的不全。像調(diào)完原生之后,原生往往會(huì)有返回值,或者根據(jù)返回值的不同回調(diào)h5的方法。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    1.判斷機(jī)型。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    2.調(diào)取原生方法之后的回調(diào)方法(回調(diào)的方法名跟原生約定好,你們方法名需一致,譬如此處規(guī)定接收方法為getResult),在created里面注冊(cè)一下回調(diào)的方法。 R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司

    以上就是關(guān)于h5與原生交互的幾種方式相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。R54創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營(yíng)銷策劃公司


    推薦閱讀:

    新媒體h5是什么(h5優(yōu)秀作品欣賞)

    h5手游排行榜(h5手游排行榜2019前十名)

    H5制作是什么(免費(fèi)制作h5最常用軟件)

    potato官方最新版本下載蘋(píng)果(potato官方下載蘋(píng)果版下載)

    國(guó)風(fēng)咖啡vi設(shè)計(jì)(國(guó)風(fēng)主題咖啡)