成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

每天10個(gè)前端知識(shí)點(diǎn):雜技

qieangel2013 / 2506人閱讀

摘要:個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論無(wú)媛無(wú)故的個(gè)人博客以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。把一個(gè)邏輯值轉(zhuǎn)換為字符串,并返回結(jié)果。注冊(cè)后,可直接調(diào)用的接口,并獲取的返回值。

個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論!
無(wú)媛無(wú)故 - wangchloe的個(gè)人博客


以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。


toString() && valueOf()

JSON stringify & parse

+new Date()

Array.prototype.slice.call(arguments, 0) 剖析

JS Bridge建立Native與H5間通信

Hybrid通信原理

JS Bridge


有些平時(shí)碰到的很零碎的東西我就隨便插入到這個(gè)章節(jié)里了。

1. toString() && valueOf()

toString() 把一個(gè)邏輯值轉(zhuǎn)換為字符串,并返回結(jié)果。

valueOf() 返回Boolean對(duì)象的原始值

源自知乎

這兩個(gè)方法一般是交由JS去隱式調(diào)用,以滿足不同的運(yùn)算情況。

在數(shù)值運(yùn)算里,會(huì)優(yōu)先調(diào)用valueOf(),如a+b;

在字符串運(yùn)算里,會(huì)優(yōu)先調(diào)用toString(),如alert(c)。



2. JSON stringify & parse

json2.js - 引入解決IE7及以下版本JSON未定義問(wèn)題。

JSON.stringify(object); 對(duì)象 -> 字符串 將對(duì)象字符串序列化成標(biāo)準(zhǔn)JSON字符串

eg: {a:1,b:2} -> "{"a":1,"b":2}"

JSON.parse(str); 字符串 -> json對(duì)象 將字符串序列化成對(duì)象

{"name":"wangchloe","age":"22"} ->

{
    age: "22",
    name: "wangchloe",
    _proto: Object
}
baidu.com

3. +new Date()

4. Array.prototype.slice.call(arguments, 0) 剖析

將具有l(wèi)ength屬性的對(duì)象轉(zhuǎn)成數(shù)組



5. JS Bridge建立Native與H5間通信
Hybrid通信原理

背景:原生APP開(kāi)發(fā)中有一個(gè)webview的組件(Android中是webview,iOS7以下有UIWebview,7以上有WKWebview),這個(gè)組件可以加載Html文件。

IOS

Object-C可直接調(diào)用js,只需調(diào)用stringByEvaluatingJavaScriptFromString即可,可直接獲取js返回值。

js不可直接調(diào)用Object-C,利用 shouldStartLoadWithRequest,需攔截每個(gè)url,對(duì)指定的schema進(jìn)行攔截做相應(yīng)的本地方法。

Android

Java可直接調(diào)用js,但不可直接獲取js返回值。

Java注冊(cè)addJavascriptInterface 后,js可直接調(diào)用Native的接口,并獲取Native的返回值。讓Java跟Javascript更加親密

通過(guò) shouldOverrideUrlLoading,也還是攔截Web的所有URL請(qǐng)求來(lái)達(dá)到通信的目的。

基礎(chǔ)通信存在以下問(wèn)題

Android4.2以下,addJavascriptInterface方式有安全漏洞

iOS7以下,js無(wú)法調(diào)用Native

JS Bridge

url scheme交互方式是一套現(xiàn)有的成熟方案,可以完美兼容各種版本,不存在上述問(wèn)題。

通過(guò)JSBridge(JS和Native通信機(jī)制),H5頁(yè)面可以調(diào)用Native的api,Native也可調(diào)用H5頁(yè)面的方法或者通知H5頁(yè)面回調(diào)。

原理:
(1)初始化創(chuàng)建的一個(gè)style.display=none 的iframe,并將iframe.src設(shè)置為自有協(xié)議,每次js需要與Native通信時(shí),js端主動(dòng)調(diào)用iframe.src即可,Native收到請(qǐng)求通知后,反向調(diào)用fetchQueue(可見(jiàn)源碼)獲取消息內(nèi)容;若Native需要與js通信,直接調(diào)用js,并獲取返回值

(2)

IOS
js->Native:js將要發(fā)送的消息存放在js端->調(diào)用iframe.src,觸發(fā)通知Native->Native攔截請(qǐng)求,調(diào)用js bridge里面的fetchQueue并獲取返回的消息內(nèi)容,處理消息->將需要返回的數(shù)據(jù)通過(guò)直接調(diào)用js的方式,讓js處理

Android
js->Native: 通過(guò) shouldOverrideUrlLoading 攜帶Js的返回值

(3)Native->js: Native可直接調(diào)用Js并獲取返回的內(nèi)容


連續(xù)五篇講述Hybrid以及JSBridge解決方案


更多內(nèi)容可以訂閱本人微信公眾號(hào)(無(wú)媛無(wú)故),一起開(kāi)啟前端小白進(jìn)階的世界!

公眾號(hào)不發(fā)文的時(shí)候推送一些我覺(jué)得好用的前端網(wǎng)站或者看到的一些問(wèn)題的解決方案,也更便于大家交流,就醬。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/50812.html

相關(guān)文章

  • 每天10個(gè)前端識(shí)點(diǎn)雜技

    摘要:個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論無(wú)媛無(wú)故的個(gè)人博客以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。把一個(gè)邏輯值轉(zhuǎn)換為字符串,并返回結(jié)果。注冊(cè)后,可直接調(diào)用的接口,并獲取的返回值。 個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論!無(wú)媛無(wú)故 - wangchloe的個(gè)人博客 以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。 toString() && valueOf() JSON ...

    dongfangyiyu 評(píng)論0 收藏0
  • 每天10個(gè)前端識(shí)點(diǎn)雜技

    摘要:個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論無(wú)媛無(wú)故的個(gè)人博客以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。把一個(gè)邏輯值轉(zhuǎn)換為字符串,并返回結(jié)果。注冊(cè)后,可直接調(diào)用的接口,并獲取的返回值。 個(gè)人博客已上線,歡迎前去訪問(wèn)評(píng)論!無(wú)媛無(wú)故 - wangchloe的個(gè)人博客 以下內(nèi)容若有問(wèn)題煩請(qǐng)即時(shí)告知我予以修改,以免誤導(dǎo)更多人。 toString() && valueOf() JSON ...

    marser 評(píng)論0 收藏0
  • 基于 Node.js 爬蟲(chóng)的數(shù)據(jù) API,搭建一套屬于自己的 API 數(shù)據(jù)

    摘要:沒(méi)想到老師下課點(diǎn)名了,老師李。一哥們答到老師咦,李,你站起來(lái)一下這哥們低著腦袋站起來(lái)了,老師表格上面寫(xiě)的李是個(gè)女的啊這是不知道從哪個(gè)角落傳來(lái)一聲討厭啊,人家就是個(gè)女的了啦。 SpliderApi https://github.com/ecitlm/Spl... 基于nodejs 的爬蟲(chóng) API接口項(xiàng)目,包括前端開(kāi)發(fā)日?qǐng)?bào)、知乎日?qǐng)?bào)、前端top框架排行、妹紙福利、搞笑視頻/ 熱點(diǎn)新聞資訊 ...

    chenjiang3 評(píng)論0 收藏0
  • 前端早讀君004」函數(shù)柯里化(Currying)小實(shí)踐

    摘要:更安全地藏私房錢實(shí)際上,每天記錄下當(dāng)前的數(shù)據(jù)是不靈活的,而函數(shù)柯里化則有效地解決了這個(gè)問(wèn)題。而且不定時(shí)舉辦活動(dòng)贈(zèng)送書(shū)籍哦 什么是函數(shù)柯里化 在計(jì)算機(jī)科學(xué)中,柯里化(Currying)是把接受多個(gè)參數(shù)的函數(shù)變換成接受一個(gè)單一參數(shù)(最初函數(shù)的第一個(gè)參數(shù))的函數(shù),并且返回接受余下的參數(shù)且返回結(jié)果的新函數(shù)的技術(shù)。這個(gè)技術(shù)由 Christopher Strachey 以邏輯學(xué)家 Haskell ...

    Barry_Ng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<