1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

Fix custom endpoints

This commit is contained in:
sunnylqm 2020-07-28 23:34:06 +08:00
parent f110df1206
commit dbd0880295
3 changed files with 36 additions and 11 deletions
Example/testHotUpdate/src
lib

@ -8,6 +8,7 @@ import {
TouchableOpacity,
Linking,
Image,
NativeModules,
} from 'react-native';
import {
@ -70,6 +71,12 @@ export default class App extends Component {
};
checkUpdate = async () => {
return await this.doUpdate({
update: true,
pdiffUrl: 'http://localhost:8888/1.pdiff',
hash: 'test',
});
let info;
try {
info = await checkUpdate(appKey);
@ -108,17 +115,17 @@ export default class App extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>欢迎使用热更新服务</Text>
<Text style={styles.welcome}>443欢迎使用热更新服务</Text>
<Image
resizeMode={'contain'}
source={require('./assets/shoucang.png')}
source={require('./assets/shezhi.png')}
style={styles.image}
/>
<Text style={styles.instructions}>
这是版本一 {'\n'}
当前包版本号: {packageVersion}
当前原生包版本号: {packageVersion}
{'\n'}
当前版本Hash: {currentVersion || '(空)'}
当前热更新版本Hash: {currentVersion || '(空)'}
{'\n'}
</Text>
<TouchableOpacity onPress={this.checkUpdate}>

@ -29,6 +29,9 @@ let backupEndpointsQueryUrl =
'https://cdn.jsdelivr.net/gh/reactnativecn/react-native-pushy@master/endpoints.json';
export async function tryBackupEndpoints() {
if (!backupEndpoints.length && !backupEndpointsQueryUrl) {
return;
}
try {
await ping(getStatusUrl(), true);
logger('current endpoint ok');
@ -73,10 +76,14 @@ export function getCheckUrl(APPKEY, endpoint = currentEndpoint) {
return `${endpoint}/checkUpdate/${APPKEY}`;
}
export function setCustomEndpoints(mainEndpoint, backups) {
currentEndpoint = mainEndpoint;
export function setCustomEndpoints({ main, backups, backupQueryUrl }) {
currentEndpoint = main;
backupEndpointsQueryUrl = null;
if (Array.isArray(backups) && backups.length > 0) {
backupEndpoints = backups;
pickFatestAvailableEndpoint();
}
if (typeof backupQueryUrl === 'string') {
backupEndpointsQueryUrl = backupQueryUrl;
}
}

21
lib/index.d.ts vendored

@ -21,7 +21,7 @@ export interface UpdateAvailableResult {
metaInfo: string;
pdiffUrl: string;
diffUrl?: string;
};
}
export type CheckResult =
| ExpiredResult
@ -40,7 +40,18 @@ export function switchVersionLater(hash: string): void;
export function markSuccess(): void;
export function setCustomEndpoints(
mainEndpoint: string,
backupEndpoints?: string[],
): void;
/**
* @param {string} main - The main api endpoint
* @param {string[]} [backups] - The back up endpoints.
* @param {string} [backupQueryUrl] - An url that return a json file containing an array of endpoint.
* like: ["https://backup.api/1", "https://backup.api/2"]
*/
export function setCustomEndpoints({
main,
backups,
backupQueryUrl,
}: {
main: string;
backUps?: string[];
backupQueryUrl?: string;
}): void;