mirror of
https://gitcode.com/gh_mirrors/re/react-native-pushy.git
synced 2025-11-01 13:53:11 +08:00
feat: support for new architecture
This commit is contained in:
41
lib/NativeUpdate.js
Normal file
41
lib/NativeUpdate.js
Normal file
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* @format
|
||||
* @flow strict-local
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
import type {TurboModule} from 'react-native/Libraries/TurboModule/RCTExport';
|
||||
import {TurboModuleRegistry} from 'react-native';
|
||||
|
||||
export interface Spec extends TurboModule {
|
||||
getConstants: () => {
|
||||
downloadRootDir: string;
|
||||
packageVersion: string;
|
||||
currentVersion: string;
|
||||
isFirstTime: boolean;
|
||||
rolledBackVersion: string;
|
||||
buildTime: string;
|
||||
blockUpdate: Object;
|
||||
uuid: string;
|
||||
isUsingBundleUrl: boolean;
|
||||
};
|
||||
setLocalHashInfo(hash: string, info:string): void;
|
||||
getLocalHashInfo(hash: string):Promise<string>;
|
||||
setUuid(uuid: string): void;
|
||||
setBlockUpdate(options: {reason: string,until: number}): void;
|
||||
downloadPatchFromPpk(options: { updateUrl:string,
|
||||
hash: string,
|
||||
originHash: string}):Promise<void>;
|
||||
downloadPatchFromPackage(options: { updateUrl:string,
|
||||
hash: string}): Promise<void>;
|
||||
downloadFullUpdate(options: { updateUrl:string,
|
||||
hash: string}): Promise<void>;
|
||||
reloadUpdate(options: { hash: string}): void;
|
||||
setNeedUpdate(options: { hash: string}): void;
|
||||
markSuccess(): void;
|
||||
downloadAndInstallApk(options: { url: string,
|
||||
target : string,
|
||||
hash: string}): Promise<void>;
|
||||
}
|
||||
|
||||
export default (TurboModuleRegistry.get<Spec>('Pushy'): ?Spec);
|
||||
24
lib/main.js
24
lib/main.js
@@ -15,25 +15,27 @@ const {
|
||||
version: v,
|
||||
} = require('react-native/Libraries/Core/ReactNativeVersion');
|
||||
const RNVersion = `${v.major}.${v.minor}.${v.patch}`;
|
||||
|
||||
let Pushy = NativeModules.Pushy;
|
||||
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
||||
const Pushy = isTurboModuleEnabled ?
|
||||
require("./NativeUpdate").default :
|
||||
NativeModules.Pushy;
|
||||
|
||||
if (!Pushy) {
|
||||
throw new Error('react-native-update模块无法加载,请对照安装文档检查配置。');
|
||||
}
|
||||
|
||||
export const downloadRootDir = Pushy.downloadRootDir;
|
||||
export const packageVersion = Pushy.packageVersion;
|
||||
export const currentVersion = Pushy.currentVersion;
|
||||
export const isFirstTime = Pushy.isFirstTime;
|
||||
const rolledBackVersion = Pushy.rolledBackVersion;
|
||||
export const downloadRootDir = isTurboModuleEnabled ? Pushy.getConstants().downloadRootDir : Pushy.downloadRootDir;
|
||||
export const packageVersion = isTurboModuleEnabled ? Pushy.getConstants().packageVersion : Pushy.packageVersion;
|
||||
export const currentVersion = isTurboModuleEnabled ? Pushy.getConstants().currentVersion : Pushy.currentVersion;
|
||||
export const isFirstTime = isTurboModuleEnabled ? Pushy.getConstants().isFirstTime : Pushy.isFirstTime;
|
||||
const rolledBackVersion = isTurboModuleEnabled ? Pushy.getConstants().rolledBackVersion : Pushy.rolledBackVersion;
|
||||
export const isRolledBack = typeof rolledBackVersion === 'string';
|
||||
|
||||
export const buildTime = Pushy.buildTime;
|
||||
let blockUpdate = Pushy.blockUpdate;
|
||||
let uuid = Pushy.uuid;
|
||||
export const buildTime = isTurboModuleEnabled ? Pushy.getConstants().buildTime : Pushy.buildTime;
|
||||
let blockUpdate = isTurboModuleEnabled ? Pushy.getConstants().blockUpdate : Pushy.blockUpdate;
|
||||
let uuid = isTurboModuleEnabled ? Pushy.getConstants().uuid : Pushy.uuid;
|
||||
|
||||
if (Platform.OS === 'android' && !Pushy.isUsingBundleUrl) {
|
||||
if (Platform.OS === 'android' && !(isTurboModuleEnabled ? Pushy.getConstants().isUsingBundleUrl : Pushy.isUsingBundleUrl)) {
|
||||
throw new Error(
|
||||
'react-native-update模块无法加载,请对照文档检查Bundle URL的配置',
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user