反应本机重定向到设置更新 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);
}
}
嘿,所以我需要检查用户设备是否是旧版本 如果是,我将显示提醒以更新 如果按下按钮“更新” 我想转到 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);
}
}