摘要:個人博客已上線,歡迎前去訪問評論無媛無故的個人博客以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。把一個邏輯值轉換為字符串,并返回結果。注冊后,可直接調用的接口,并獲取的返回值。
個人博客已上線,歡迎前去訪問評論!
無媛無故 - wangchloe的個人博客
以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。
toString() && valueOf()
JSON stringify & parse
+new Date()
Array.prototype.slice.call(arguments, 0) 剖析
JS Bridge建立Native與H5間通信
Hybrid通信原理
JS Bridge
有些平時碰到的很零碎的東西我就隨便插入到這個章節里了。
1. toString() && valueOf()toString() 把一個邏輯值轉換為字符串,并返回結果。
valueOf() 返回Boolean對象的原始值
源自知乎
這兩個方法一般是交由JS去隱式調用,以滿足不同的運算情況。
在數值運算里,會優先調用valueOf(),如a+b;
在字符串運算里,會優先調用toString(),如alert(c)。
2. JSON stringify & parsejson2.js - 引入解決IE7及以下版本JSON未定義問題。
JSON.stringify(object); 對象 -> 字符串 將對象字符串序列化成標準JSON字符串
eg: {a:1,b:2} -> "{"a":1,"b":2}"
JSON.parse(str); 字符串 -> json對象 將字符串序列化成對象
{"name":"wangchloe","age":"22"} ->
{ age: "22", name: "wangchloe", _proto: Object }
baidu.com3. +new Date() 4. Array.prototype.slice.call(arguments, 0) 剖析
將具有length屬性的對象轉成數組
5. JS Bridge建立Native與H5間通信 Hybrid通信原理背景:原生APP開發中有一個webview的組件(Android中是webview,iOS7以下有UIWebview,7以上有WKWebview),這個組件可以加載Html文件。
IOS
Object-C可直接調用js,只需調用stringByEvaluatingJavaScriptFromString即可,可直接獲取js返回值。
js不可直接調用Object-C,利用 shouldStartLoadWithRequest,需攔截每個url,對指定的schema進行攔截做相應的本地方法。
Android
Java可直接調用js,但不可直接獲取js返回值。
Java注冊addJavascriptInterface 后,js可直接調用Native的接口,并獲取Native的返回值。讓Java跟Javascript更加親密
通過 shouldOverrideUrlLoading,也還是攔截Web的所有URL請求來達到通信的目的。
基礎通信存在以下問題
Android4.2以下,addJavascriptInterface方式有安全漏洞
iOS7以下,js無法調用Native
JS Bridgeurl scheme交互方式是一套現有的成熟方案,可以完美兼容各種版本,不存在上述問題。
通過JSBridge(JS和Native通信機制),H5頁面可以調用Native的api,Native也可調用H5頁面的方法或者通知H5頁面回調。
原理:
(1)初始化創建的一個style.display=none 的iframe,并將iframe.src設置為自有協議,每次js需要與Native通信時,js端主動調用iframe.src即可,Native收到請求通知后,反向調用fetchQueue(可見源碼)獲取消息內容;若Native需要與js通信,直接調用js,并獲取返回值
(2)
IOS
js->Native:js將要發送的消息存放在js端->調用iframe.src,觸發通知Native->Native攔截請求,調用js bridge里面的fetchQueue并獲取返回的消息內容,處理消息->將需要返回的數據通過直接調用js的方式,讓js處理
Android
js->Native: 通過 shouldOverrideUrlLoading 攜帶Js的返回值
(3)Native->js: Native可直接調用Js并獲取返回的內容
連續五篇講述Hybrid以及JSBridge解決方案
更多內容可以訂閱本人微信公眾號(無媛無故),一起開啟前端小白進階的世界!
公眾號不發文的時候推送一些我覺得好用的前端網站或者看到的一些問題的解決方案,也更便于大家交流,就醬。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/50812.html
摘要:個人博客已上線,歡迎前去訪問評論無媛無故的個人博客以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。把一個邏輯值轉換為字符串,并返回結果。注冊后,可直接調用的接口,并獲取的返回值。 個人博客已上線,歡迎前去訪問評論!無媛無故 - wangchloe的個人博客 以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。 toString() && valueOf() JSON ...
摘要:個人博客已上線,歡迎前去訪問評論無媛無故的個人博客以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。把一個邏輯值轉換為字符串,并返回結果。注冊后,可直接調用的接口,并獲取的返回值。 個人博客已上線,歡迎前去訪問評論!無媛無故 - wangchloe的個人博客 以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。 toString() && valueOf() JSON ...
摘要:沒想到老師下課點名了,老師李。一哥們答到老師咦,李,你站起來一下這哥們低著腦袋站起來了,老師表格上面寫的李是個女的啊這是不知道從哪個角落傳來一聲討厭啊,人家就是個女的了啦。 SpliderApi https://github.com/ecitlm/Spl... 基于nodejs 的爬蟲 API接口項目,包括前端開發日報、知乎日報、前端top框架排行、妹紙福利、搞笑視頻/ 熱點新聞資訊 ...
摘要:更安全地藏私房錢實際上,每天記錄下當前的數據是不靈活的,而函數柯里化則有效地解決了這個問題。而且不定時舉辦活動贈送書籍哦 什么是函數柯里化 在計算機科學中,柯里化(Currying)是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,并且返回接受余下的參數且返回結果的新函數的技術。這個技術由 Christopher Strachey 以邏輯學家 Haskell ...
閱讀 3752·2021-08-11 11:16
閱讀 1621·2019-08-30 15:44
閱讀 1995·2019-08-29 18:45
閱讀 2267·2019-08-26 18:18
閱讀 996·2019-08-26 13:37
閱讀 1565·2019-08-26 11:43
閱讀 2109·2019-08-26 11:34
閱讀 372·2019-08-26 10:59