React Native 原生 APP 更新

2022-06-27 10:39:13 字數 2225 閱讀 3509

比較遠端版本和當前版本的區別(可以使用庫,也可以自己寫乙個比較方案)

* 比較兩版本號

* @param currentversion

* @return boolean

* true=需要更新 false=不需要

*/compareversion = (currentversion: string): boolean => = this.remoteinfo || {}

if (!remoteversion)

if (currentversion === remoteversion)

const currentversionarr = currentversion.split('.')

const remoteversionarr = remoteversion.split('.')

for (let i = 0; i < 3; i++)

} return false

}public void installapk(string filepath, string fileproviderauthority)

if (build.version.sdk_int >= 24) catch (exception e)

} else catch (exception e)

intent intent = new intent(intent.action_view);

intent.addflags(intent.flag_activity_new_task);

reactcontext.startactivity(intent);

}}在打包時, 通過指令碼更新介面或者檔案資訊, 當然這個得看具體的打包方案

比如我現在的方案是使用 jenkins 打包, 在打包時使用 shell 指令碼更新對應資訊(有需要也可以使用其他語言指令碼):

iosversionfilepath="$workspace/ios/veronica/info.plist" // 通過此檔案獲取ios的版本資訊

changelogpath="$workspace/change.log" // 將版本更新資訊儲存在此檔案中

通過檔案位址, 獲取打完包後的版本資訊

getandroidversion()' | sed 's/\"//g')

androidcode=$(cat $androidversionfilepath | grep "versioncode " | awk '' | sed 's/\"//g')

return 0

}getiosversion()' $iosversionfilepath)

iosversion=$(echo "$rows" | sed -ne 's/\(.*\)/\1/p')

iosversion=$(echo "$iosversion" | sed 's/^[[:space:]]*//')

rows2=$(awk '/versioncode/ ' $iosversionfilepath)

ioscode=$(echo "$rows2" | sed -ne 's/\(.*\)/\1/p')

ioscode=$(echo "$ioscode" | sed 's/^[[:space:]]*//')

return 0

}desc=$(cat $changelogpath | tr "\n" "#")

替換現有檔案中的資訊:

sed -i '' "s/\"releaseinfo\":.*$/\"releaseinfo\": \"$desc\"/"  $jsonpath/$filename

sed -i '' "s/\"versionname\":.*$/\"versionname\": \"$versionname\",/" $jsonpath/$filename

sed -i '' "s/\"versioncode\":.*$/\"versioncode\": \"$versioncode\",/" $jsonpath/$filename

我的檔案是以 json 作為格式的,說明文字是可以任意填寫的,會觸發一些解析問題:

React Native使用原生UI元件

其實,如果android接入rn已經搞好了,這個就不難弄了,都是類似的,下面先大致介紹一下如何使用原生ui元件的,如下 public class nativepaintviewmanager extends viewmanager override protected mypaintview cre...

ReactNative整合到原生專案

reactnative整合到原生專案 1 在工程裡建立乙個reactcomponent資料夾,用來存放reactnative相關的檔案 2 reactcomponent資料夾裡,存放以下檔案 3 其中package.json檔案是關於reactnative的配置資訊,最好自己init乙個專案然後將專...

原生iOS專案匯入ReactNative,各種問題

xcode select print path library developer commandlinetools xcodebuild showsdks xcode select error tool xcodebuild requires xcode,but active developer ...