nw_protocol_boringssl_error(1584)


   RN是個奇怪的東西,是Facebook於2015年4月開源的跨平台移動應用開發框架,是Facebook早先開源的JS框架 React 在原生移動應用平台的衍生產物,目前支持iOS和安卓兩大平台。但自開發以來一直是詬病不斷,雖然一直在升級修復問題,問題還是五花八門。本人苦逼的iOS程序猿一枚,在RN中不斷趟坑。在做登錄模塊從原生到RN時出現下面的打印。

 
 

相信大家都知道從原生到RN這段時間是有短暫白屏的,在首次跳轉的時候較為明顯。

  RN需要一個JS的運行環境,在IOS上直接使用內置的JavaScriptCore作為JS的解析引擎,在Android則使用webkit.org官方開源的jsc.so。此外還集成了其他開源組件,如fresco圖片組件,okhttp網絡組件等。RN會把應用的JS代碼(包括依賴的framework)編譯成一個js文件(一般命名為index.bundle),  RN的整體框架目標就是為了解釋運行這個js 腳本文件,如果是js 擴展的API, 則直接通過bridge調用native方法; 如果是UI界面, 則映射到virtual DOM這個虛擬的JS數據結構中,通過bridge 傳遞到native , 然后根據數據屬性設置各個對應的真實native的View。 bridge是一種JS 和 JAVA代碼通信的機制, 用bridge函數傳入對方module 和 method即可得到異步回調的結果。

有開發說請求過程中,通過URL鏈接下載文件,報錯:([BoringSSL]nw_protocol_boringssl_error(1584)),是后台那邊的問題。實則不然BoringSSL確實的是谷歌的一個底層(Google在2014年推出的機遇OpenSSL的分支)。但出現這種情況的原因是網絡請求https設置的問題。修改方法如下:

1.在iOS項目中找到info.plist文件

 

 
 

2.修改App Transport Security Settings下的Allow Arbitrary Loads

 

 
 

或者直接去掉。為了對應后台多變的情況,既要支持http也要支持https,建議采取第一中方法。

修改后的效果還算不錯,算是解決了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM