反应本机重定向到设置更新 OS

react native redirect to the settings update OS

嘿,所以我需要检查用户设备是否是旧版本 如果是,我将显示提醒以更新 如果按下按钮“更新” 我想转到 OS 的屏幕进行更新。

感谢任何可以提供帮助的人!

export const CheckOsVersion: FC = () => {
    useEffect(() => {
        const currentOS = Platform.OS;
        const currentVersion = Number(Platform.Version);

        const LATEST_VERSION_ANDROID = 34;
        const LATEST_VERSION_IOS = 13;
        const MAX_DIFF_VERSION = 2;

        if (currentOS === 'android') {
            if (LATEST_VERSION_ANDROID - currentVersion > MAX_DIFF_VERSION) {
                Alert.alert(
                    'text',
                    '“text.',
                    [
                        {
                            text: 'NOT NOW',
                            onPress: () => console.log('Cancel Pressed'),
                            style: 'cancel',
                        },
                        {
                            text: 'Update',
                            onPress: () => console.log('Update Pressed'),
                        },
                    ],
                    { cancelable: false },
                );
            }
        } else if (currentOS === 'ios') {
            if (LATEST_VERSION_IOS - currentVersion > MAX_DIFF_VERSION) {
                Alert.alert(
                    'text',
                    '“text.',
                    [
                        {
                            text: 'NOT NOW',
                            onPress: () => console.log('Cancel Pressed'),
                            style: 'cancel',
                        },
                        {
                            text: 'Update',
                            onPress: () => console.log('Update Pressed'),
                        },
                    ],
                    { cancelable: false },
                );
            }
        }
    }, []);

所以我找到的解决方案是您需要用本机编写一个桥 并使用那个

类似于:Limk 这里也有例子,他们解释了 Kotlin

中的内容

那是我在 文件:SettingsUpdateModule.kt

package com.att.fn.android.missioniq.modules.settingsRedirect

import android.content.Intent
import androidx.core.content.ContextCompat.startActivity
import com.facebook.react.bridge.*


class SettingsUpdateModule(private val reactContext: ReactApplicationContext): ReactContextBaseJavaModule() {

    override fun getName(): String = SettingsUpdateModule::class.java.simpleName

    @ReactMethod
    public  fun  updateOs() {
        val i =Intent("android.settings.SYSTEM_UPDATE_SETTINGS",)
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        startActivity(this.reactContext, i, null);
    }


}