摘要:在版本中加載方法做了重大改變,新增了單例類專門處理,使用保存配置信息。非模式時,沒有文件,會直接讀取本地文件,和以前版本的方式相同。手動設(shè)置在接口中暴露了屬性,可以通過手動設(shè)置。另需要在設(shè)置的為即可。
React Native iOS在0.29.0版本中BundleURL加載方法做了重大改變,新增了RCTBundleURLProvider單例類專門處理BundleURL,使用NSUserDefaults保存配置信息。
默認加載方式在Debug模式下,執(zhí)行react-native-xcode.sh編譯腳本會自動獲取當前網(wǎng)卡en0的IP地址,并打入App包中一個配置文件ip.txt,App運行時會讀取ip文件,自動生成Developer Server URL,通過這種加載方式,我們不再需要手動去把"localhost"改成Mac的IP了,每次編譯都會讀取當前最新的IP。
if [[ "$CONFIGURATION" = "Debug" && "$PLATFORM_NAME" != "iphonesimulator" ]]; then PLISTBUDDY="/usr/libexec/PlistBuddy" PLIST=$TARGET_BUILD_DIR/$INFOPLIST_PATH IP=$(ipconfig getifaddr en0) $PLISTBUDDY -c "Add NSAppTransportSecurity:NSExceptionDomains:localhost:NSTemporaryExceptionAllowsInsecureHTTPLoads bool true" $PLIST $PLISTBUDDY -c "Add NSAppTransportSecurity:NSExceptionDomains:$IP.xip.io:NSTemporaryExceptionAllowsInsecureHTTPLoads bool true" $PLIST echo "$IP.xip.io" > "$DEST/ip.txt" fi
非Debug模式時,沒有ip.txt文件,會直接讀取本地jsbundle文件,和以前版本的Load from pre-bundled file on disk方式相同。
但是我經(jīng)過測試發(fā)現(xiàn),en0是Wifi的網(wǎng)絡(luò),如果關(guān)閉Wifi,使用網(wǎng)線端口連接網(wǎng)絡(luò),en0默認就是inactive,沒有對應(yīng)的IP。
RCTBundleURLProvider在接口中暴露了jsLocation屬性,可以通過setJsLocation手動設(shè)置IP。
NSURL *jsCodeLocation; [[RCTBundleURLProvider sharedSettings] setDefaults]; #if DEBUG [[RCTBundleURLProvider sharedSettings] setJsLocation:@"192.168.1.101"]; #endif jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
另需要在Info設(shè)置NSAppTransportSecurity的NSAllowsArbitraryLoads為true即可。
總之RCTBundleURLProvider類做了一些消息和屬性的封裝,可以通過判斷是否DEBUG環(huán)境然后做不同的設(shè)置。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79928.html
摘要:在最上面的,阿里一般稱之為文件,通過轉(zhuǎn)換成,再部署到服務(wù)器,這樣服務(wù)端就完成了。例如,通過安裝了業(yè)界的工具庫用上和如今前端的開發(fā),一般離不開預(yù)處理器,比如和。在默認的文件中,即使有的助力,這類預(yù)處理器也是對其無能為力的。 生命周期 module.exports = { data: {}, methods: {}, init: function () { ...
摘要:我們參考小程序的設(shè)計思路進行了優(yōu)化升級,為每一個需要特有化配置的頁面添加一個格式的配置文件,配置文件包括導(dǎo)航欄的配置頁面級別的配置跳轉(zhuǎn)的配置等,將配置工程化標準化。設(shè)置導(dǎo)航欄按鈕包含按鈕樣式的數(shù)組通過完成按鈕事件的回調(diào)。一、背景1.為什么是Weex在公司快速發(fā)展的大環(huán)境下,App的更新迭代高速、高頻,技術(shù)團隊平均兩周便可誕生一款中型App,但App團隊只有6個人(iOS 、Android各3...
摘要:前言學(xué)習也有一段時間了,關(guān)于在三端的使用,我們也做了實戰(zhàn)開發(fā),渲染時間在之間,各平臺體驗相比都有極大的提升,此文章在的角度記錄開發(fā)過程中遇到的一些問題,如果想要了解前端和安卓的開發(fā)可以參考我同事寫的一些內(nèi)容實踐前端視角實踐安卓視角準備工作 前言 weex學(xué)習也有一段時間了,關(guān)于weex在三端的使用,我們也做了實戰(zhàn)開發(fā),渲染時間在100-300ms之間,各平臺體驗相比H5都有極大的提升,...
閱讀 3436·2023-04-25 22:44
閱讀 950·2021-11-15 11:37
閱讀 1644·2019-08-30 15:55
閱讀 2659·2019-08-30 15:54
閱讀 1096·2019-08-30 13:45
閱讀 1444·2019-08-29 17:14
閱讀 1867·2019-08-29 13:50
閱讀 3426·2019-08-26 11:39