亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

深入了解Hybrid App技術的相關知識

2024-05-06 16:53:23
字體:
來源:轉載
供稿:網友

背景

隨著Web技術的發展和移動互聯網的發展,Hybrid技術已經成為一種前端開發的主流技術方案。那什么是Hybrid App呢?

Hybrid App(混合模式移動應用)是指介于web-app、native-app這兩者之間的app,兼具" Native App良好用戶交互體驗的優勢 "和" Web App跨平臺開發的優勢 "。

總的來說,就是既具有APP的體驗和性能,又具有Web靈活的開發模式和跨平臺開發能力。

現有的技術方案

1、H5 + JSBridge,通過JSBridge完成H5和Native的通信,賦予H5一定的端能力。是一種基于WebView UI的解決方案。

2、React-Native,進一步通過JSbridge將js解析為虛擬DOM傳遞到Native,并使用原生進行渲染。

3、小程序解決方案,采用雙線程的渲染機制,將渲染層WebView和邏輯層JavaScriptCore形成獨立的模塊,通過Native進行通信(setData),邏輯層的網絡請求也會由Native進行轉發。在UI方面,采用的是WebView和原生相結合的方式。

技術原理

本文將從jsbridge的原理、實現、雙向通信、接入方式和H5的嵌入方式進行詳細闡述。

jsbridge的原理

客戶端能對WebView中請求進行攔截,都有相應的API:

Android:

// Android: shouldoverrideurlloading public boolean shouldOverrideUrlLoading(WebView view, String url){  //讀取到url后自行進行分析處理    //如果返回false,則WebView處理鏈接url,如果返回true,代表WebView根據程序來執行url  return true;}

IOS:

// IOS: shouldStartLoadWithRequest - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {  NSURL *url = [request URL];     NSString *requestString = [[request URL] absoluteString];  //獲取url scheme后自行進行處理

因此,在頁面中可以通過iframe加載src的方式觸發相應的捕獲函數,在捕獲函數中可以對url中的參數進行解析;此外,Android還可以通過重寫OnJSPrompt方法,對調用Prompt進行攔截,同樣能實現通信的目的。

示例:

調起ios端:

function iosInvoke(scheme) {  var elem = document.createElement('iframe');  var body = document.body || document.getElementsByTagName('body')[0];  elem.style.display = 'none';  elem.src = scheme;  body.appendChild(elem);  setTimeout(function () {    body.removeChild(elem);    elem = null;  }, 0);}

調起android端:

function androidInvoke(scheme) {  var androidJsBridge = window.Bdbox_android_jsbridge;  if (androidJsBridge && androidJsBridge.dispatch) {    androidJsBridge.dispatch(scheme);  } else {    var re = window.prompt('BdboxApp:' + JSON.stringify({      obj: 'Bdbox_android_jsbridge',      func: 'dispatch',      args: [scheme]    }));    return re;  }}

協議制定URL Scheme

URL Scheme是什么

由于蘋果的app都是在沙盒中,相互是不能訪問數據的。但是蘋果還是給出了一個可以在app之間跳轉的方法:URL Scheme。簡單的說,URL Scheme就是一個可以讓app相互之間可以跳轉的協議。

每個app的URL Scheme都是不一樣的,如果存在一樣的URL Scheme,那么系統就會響應先安裝那個app的URL Scheme,因為后安裝的app的URL Scheme被覆蓋掉了,是不能被調用的。

設置URL Scheme

xxxapp://communication?args=xx

如何進行雙向通信

雙向通信主要是H5和Native的雙向通信過程以及參數傳遞、回調執行。

H5通知Native:

H5通知Native的方式主要有:

  • 調用prompt/console/alert,調用時進行參數傳遞,端進行攔截重寫
  • URL Scheme跳轉攔截,將參數放在請求URL上
  • API掛載,通過Navtive獲取js執行環境,將相應的api掛載在js上,供h5調用

Native通知H5:

回調機制,在向Native傳遞信息時,將回調函數也傳遞,Native在調用完成后,使用js執行環境執行回調函數

接入方式

jsbridge的接入,端方面的jsbridge和h5方面的jsbridge

嵌入方式

h5的嵌入方式:

  • 直接代碼,直接將H5代碼css、html、js放入端目錄下,以file協議的方式訪問,優點是訪問快速,缺點是迭代不方便。
  • 線上地址,以http協議訪問,使用webview打開url形式,相較于代碼嵌入的方式來說,速度比較慢,依賴網絡傳輸速度;優點是迭代快速

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩男女性生活视频| 日本伊人精品一区二区三区介绍| 日韩中文在线不卡| 亚洲精品视频免费| 国产69精品99久久久久久宅男| 日韩欧美国产高清91| 亚洲韩国欧洲国产日产av| 中文字幕在线日韩| 国产91精品久久久| 亚洲偷欧美偷国内偷| 亚洲国产欧美精品| 久久久久国色av免费观看性色| 国色天香2019中文字幕在线观看| 神马国产精品影院av| 欧美视频中文字幕在线| 久久久国产精品x99av| www国产亚洲精品久久网站| 欧美激情三级免费| 日韩在线小视频| 亚洲欧美制服第一页| 欧美综合一区第一页| 国产在线视频2019最新视频| 欧美成人在线免费视频| 91成人国产在线观看| 日韩资源在线观看| 中文字幕国产亚洲| 欧美日韩午夜激情| 日韩中文字幕在线视频| 国产精品wwwwww| 欧美精品免费播放| 裸体女人亚洲精品一区| 美女少妇精品视频| 精品久久久久人成| 国产精品h在线观看| 国产精品网红福利| 成人av电影天堂| 欧美日韩另类字幕中文| 国产精品久久久久久久一区探花| 欧美一区三区三区高中清蜜桃| 精品亚洲aⅴ在线观看| 美女999久久久精品视频| 成人黄色影片在线| 亚洲天堂免费在线| 欧美在线视频网| 午夜免费在线观看精品视频| 欧美一级电影久久| 岛国av一区二区在线在线观看| wwwwwwww亚洲| 最近2019中文字幕第三页视频| 久久69精品久久久久久久电影好| 性色av一区二区三区| 91极品视频在线| 久久久久久久久久国产精品| xxx成人少妇69| 日韩av电影在线免费播放| 欧美疯狂做受xxxx高潮| 国内精品视频在线| 欧美在线一区二区视频| 亚洲天堂av在线免费| 日本a级片电影一区二区| 欧美成人三级视频网站| 青青a在线精品免费观看| 久久久免费高清电视剧观看| 不卡在线观看电视剧完整版| 91久久嫩草影院一区二区| 国产视频在线观看一区二区| 国产精品自拍偷拍视频| 亚洲福利视频专区| 欧美日韩国产精品一区二区三区四区| 亚洲无av在线中文字幕| 国产视频丨精品|在线观看| 亚洲第一区第二区| 欧美高清一级大片| 国产精品久久久久aaaa九色| 国产欧美精品一区二区三区介绍| 精品视频9999| 国产欧美日韩免费| 欧美日韩国产一中文字不卡| 亚洲国产一区二区三区在线观看| 亚洲女同性videos| 青青在线视频一区二区三区| 日韩在线视频导航| 日韩大陆欧美高清视频区| 久久天天躁狠狠躁老女人| 国产在线视频不卡| 日韩精品欧美激情| 亚洲xxxx在线| 欧美成年人在线观看| 亚洲免费av网址| 久久免费视频网站| 亚洲a成v人在线观看| 久久久噜噜噜久噜久久| 欧美一区二粉嫩精品国产一线天| 欧美综合在线观看| 国产精品久久久久999| 国产精品久久一区主播| 色偷偷av一区二区三区乱| 国产精品∨欧美精品v日韩精品| 欧美网站在线观看| 国产精品日韩欧美| 69久久夜色精品国产7777| 亚洲精品欧美极品| 久久在线免费观看视频| 日本精品视频在线| 88国产精品欧美一区二区三区| 欧美大片免费观看在线观看网站推荐| 国产精品久久久久福利| 国产精品高潮呻吟久久av黑人| 欧美激情网站在线观看| 国产精品入口尤物| 亚洲小视频在线观看| 欧美色另类天堂2015| 成人国产精品久久久| 中国china体内裑精亚洲片| 91色中文字幕| 日韩欧美成人网| 日韩视频免费在线观看| 久久韩国免费视频| 国产精品亚洲综合天堂夜夜| www.欧美精品| 欧美在线性视频| 中文字幕亚洲综合久久| 欧美—级高清免费播放| 中文字幕欧美亚洲| 成人www视频在线观看| 奇门遁甲1982国语版免费观看高清| 91av国产在线| 精品毛片网大全| 色先锋久久影院av| 欧美大片大片在线播放| 91探花福利精品国产自产在线| 欧美在线视频导航| 综合网中文字幕| 狠狠躁夜夜躁人人躁婷婷91| 日韩精品极品在线观看播放免费视频| 激情懂色av一区av二区av| 岛国视频午夜一区免费在线观看| 日本欧美精品在线| 亚洲精选一区二区| 欧美日韩国产综合视频在线观看中文| 亚洲欧美日韩综合| 欧美性猛交xxxx富婆| 欧美日韩午夜激情| 国产精品你懂得| 国产成人精品国内自产拍免费看| 欧美日韩国产综合新一区| 91在线高清免费观看| 久久人人爽人人爽人人片av高请| 中文字幕久精品免费视频| 国产精品视频一区二区三区四| 国产成人综合精品在线| 欧美限制级电影在线观看| 最近中文字幕mv在线一区二区三区四区| 国产69精品久久久| 久久免费视频网| 亚洲久久久久久久久久久| 精品国产31久久久久久| 欧美成人免费在线观看| 色综合天天狠天天透天天伊人| 国产在线精品播放| 免费99精品国产自在在线| 国产91色在线播放| 久久人人爽人人爽人人片亚洲| 亚洲午夜未满十八勿入免费观看全集|