2018年以来、私は開くのXUpdateをした後、それは14件のバージョン、4K +の毎月のダウンロード容量、Githubにも800+を持っているスター量を繰り返してきました。
現在生態のXUpdateではすでに含まれているネイティブのAndroid SDKには、フラッターのプラグインは、バージョンアップのバックオフィスサービス、更新されたバージョン管理システム。その生態系を豊かにできるようにするには、私が反応-ネイティブプラグインを書くことにしました。
今私は与えるreact-native-xupdate-new
:プラグインアドレス
https://www.npmjs.com/package/react-native-xupdate-newを
ショー
- デフォルトの更新
- サポートバックグラウンド更新
- 画面縦横比限界表示更新
- 更新
- カスタム更新プロンプトポップスタイル
クイック統合ガイド
注:これは、恥ずかしいです
react-native-xupdate
誰かを解放する最初のされている、私は名前の公表を変更することができますreact-native-xupdate-new
依存追加
npm install react-native-xupdate-new --save
リンク
react-native link react-native-xupdate-new
初期化
- 呼び出し
XUpdate.init
方法を初期化します。 - コール
XUpdate.addErrorListener
エラー監視を設定する方法を。
import {XUpdate} from 'react-native-xupdate-new';
///初始化
initXUpdate() {
///设置初始化参数
let args = new InitArgs();
///是否输出日志
args.debug = true;
///post请求是否是上传json
args.isPostJson = false;
///是否只在wifi下才能进行更新
args.isWifiOnly = false;
///是否开启自动模式
args.isAutoMode = false;
///是否支持静默安装,这个需要设备有root权限
args.supportSilentInstall = false;
///在下载过程中,如果点击了取消的话,是否弹出切换下载方式的重试提示弹窗
args.enableRetry = false;
///初始化SDK
XUpdate.init(args).then(result => {
this.setState({
_message: '初始化成功:' + JSON.stringify(result),
});
}).catch(error => {
console.log(error);
this.setState({
_message: '初始化失败:' + error,
});
});
//设置自定义解析
XUpdate.setCustomParser({parseJson: this.customParser});
//设置错误监听
XUpdate.addErrorListener(this.errorListener);
}
説明書
バージョン更新JSON形式を返します
{
"Code": 0, //0代表请求成功,非0代表失败
"Msg": "", //请求出错的信息
"UpdateStatus": 1, //0代表不更新,1代表有版本更新,不需要强制升级,2代表有版本更新,需要强制升级
"VersionCode": 3, //编译版本号(唯一)
"VersionName": "1.0.2", //版本名(用于展示)
"ModifyContent": "1、优化api接口。\r\n2、添加使用demo演示。\r\n3、新增自定义更新服务API接口。\r\n4、优化更新提示界面。", //更新内容
"DownloadUrl": "https://raw.githubusercontent.com/xuexiangjys/XUpdate/master/apk/xupdate_demo_1.0.2.apk",// 文件下载地址
"ApkSize": 2048, //文件的大小(单位:kb)
"ApkMd5": "..." //md5值没有的话,就无法保证apk是否完整,每次都会重新下载。框架默认使用的是md5加密。
}
バージョンアップデート
- デフォルトの更新
checkUpdateDefault() {
let args = new UpdateArgs(_updateUrl);
XUpdate.update(args);
}
- +アプリケーションのサポートバックグラウンド更新の更新をデフォルト
checkUpdateSupportBackground() {
let args = new UpdateArgs(_updateUrl);
args.supportBackgroundUpdate = true;
XUpdate.update(args);
}
- 表示バージョン更新のアスペクト比を調整します
checkUpdateRatio() {
let args = new UpdateArgs(_updateUrl);
args.widthRatio = 0.6;
XUpdate.update(args);
}
- アップデートの自動モードバージョンでは、必要に応じて完全に無人、自動更新場合は、root権限サイレントインストールを必要とします[]
checkUpdateAutoMode() {
let args = new UpdateArgs(_updateUrl);
args.isAutoMode = true;
XUpdate.update(args);
}
- クリックしてダウンロードをキャンセルあなたがダウンロードモードに切り替えることができます
enableChangeDownLoadType() {
let args = new UpdateArgs(_updateUrl);
args.overrideGlobalRetryStrategy = true;
args.enableRetry = true;
args.retryContent = 'Github下载速度太慢了,是否考虑切换蒲公英下载?';
args.retryUrl = 'https://www.pgyer.com/flutter_learn';
XUpdate.update(args);
}
カスタムJSONの構文解析
カスタム・パーサーの更新バージョンを定義する1
//设置自定义解析
XUpdate.setCustomParser({parseJson: this.customParser});
///Resolve the custom JSON content to the UpdateEntity entity class
customParser = (json) => {
let appInfo = JSON.parse(json);
return {
//必填
hasUpdate: appInfo['hasUpdate'],
versionCode: appInfo['versionCode'],
versionName: appInfo['versionName'],
updateContent: appInfo['updateLog'],
downloadUrl: appInfo['apkUrl'],
//选填
isIgnorable: appInfo['isIgnorable'],
apkSize: appInfo['apkSize'],
};
};
2.設定するisCustomParse
パラメータをtrueに。
///使用自定义json解析
customJsonParse() {
let args = new UpdateArgs(_updateUrl3);
args.isCustomParse = true;
XUpdate.update(args);
}
直接UpdateEntity更新へ
///直接传入UpdateEntity进行更新提示
checkUpdateByUpdateEntity() {
let args = new UpdateArgs();
args.supportBackgroundUpdate = true;
XUpdate.updateByInfo(args, {
hasUpdate: AppInfo['hasUpdate'],
versionCode: AppInfo['versionCode'],
versionName: AppInfo['versionName'],
updateContent: AppInfo['updateLog'],
downloadUrl: AppInfo['apkUrl'],
//选填
isIgnorable: AppInfo['isIgnorable'],
apkSize: AppInfo['apkSize'],
});
}
カスタムバージョンの更新プロンプトポップスタイル
現在、唯一のカスタムカラーテーマとトップ絵をサポートしています
1.設定画面リソースパスの上、パス:android/app/src/main/res/values/drawable
ミップマップファイルの下に置いてはいけません、それ以外のリソースが見つかります。例えば:
2.設定themeColor
とtopImageRes
パラメータ。
///自定义更新弹窗样式
customPromptDialog() {
let args = new UpdateArgs(_updateUrl);
args.themeColor = '#FFFFAC5D';
args.topImageRes = 'bg_update_top';
XUpdate.update(args);
}
関連リンク
- XUpdateの軽量、アップデートフレームワークのAndroidのバージョンの高可用性
- ドキュメントの使用のXUpdate
- フラッタープラグインののXUpdate
- XUpdateの管理サービス
- XUpdateの背景管理システム