Android
在 Android/app/src/main/java/com/项目名
下创建文件VersionInfo.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package com.项目名
import android.content.Context import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReactMethod import com.facebook.react.bridge.Promise
class VersionInfo(private val reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { override fun getName(): String { return "VersionInfo" }
@ReactMethod fun getAndroidVersion(promise: Promise) { val version = reactContext.packageManager.getPackageInfo(reactContext.packageName, 0).versionName promise.resolve(version) } @ReactMethod fun getAndroidVersionCode(promise: Promise) { val versionCode = reactContext.packageManager.getPackageInfo(reactContext.packageName, 0).versionCode promise.resolve(versionCode) } }
|
在Android/app/src/main/java/com/项目名/MainApplication.kt
中 新增代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.NativeModule import com.facebook.react.uimanager.ViewManager
override fun getPackages(): List<ReactPackage> = PackageList(this).packages.apply { add(VersionInfoPackage()) }
class VersionInfoPackage : ReactPackage { override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> { return listOf(VersionInfo(reactContext)) }
|
RN中的使用方式
1 2 3 4 5 6 7
| import {NativeModules} from 'react-native';
const {VersionInfo} = NativeModules;
VersionInfo.getAndroidVersion().then((versionName) => { console.log(versionName) });
|
版本号修改
在 android/app/build.gradle
中 修改versionName
字段
IOS
还没写呢😜