Delphi Android APP 自动更新: 使用 RADStudio10.3.3 并在 Android 10 测试通过
我的理想 : 只需要将新版的APP的安装APK文件复制到网站的下载地址里, 其他的什么也不用做
编写过程 : 艰难地从 N 个坑里爬出来后, 终于惊险地过关 ^_^
原理:
过程: function CheckInstalled : Boolean;
检查 UCFG_APP 与 UCFG_APK 的值, 一致就表示已经成功安装, 不一致就继续检查
通过 APP 与 APK 版本检查是否一致, 如果是, 设标志 UCFG_APP=UCFG_APK, 并删除 APK 文件
非常重要: Options -> Application -> Version Info -> versionName 版本号不变即使最新也不会执行安装
A. 每天的首次开启 APP 时, 则是这样做(必须获取信息成功, 否则每次都是首次)
1. 通过 fso.json 获取 APK 的信息, 执行 2
2. 检查本地 download 目录 APK 文件, 时间不一致就执行3, 否则直接执行4
3. 下载, 成功后修改 apk 文件时间, 与服务器一致, 再执行 4
4. CheckInstalled 检查是否成功安装, 未成功安装的就调用 APK 安装
B. 每天的再次开启 APP 时, 只执行 CheckInstalled 检查
========================================
开工: 如果你的APP下载地址是 http://127.0.0.1/app/android/myapp.apk
========================================
1. 整理 ASP 服务器 (本人是Win7)
1.1 复制 fso.json 到 ASP 服务器根目录
1.2 修改 IIS 配置
[处理程序映射] - 添加脚本映射
请求路径=*.json
可执行文件=%windir%\system32\inetsrv\asp.dll
名称=JSONClassic
请求限制 设成与 ASPClassic 的一样
[MIME类型] - 添加, (如果已做请忽略)
文件扩展名: .apk
MIME类型: application/vnd.android.package-archive
1.3 修改 ASP 日期时间格式:
打开注册表,进入到[HKEY_USERS\.DEFAULT\Control Panel\International],然后
将键 sDate 的值由 / 改为 -
将键 sShortDate 的值由 yyyy/M/d 改为 yyyy-MM-dd
重启 IIS 即可(开始-运行-cmd 中输入iisreset,回车)。
1.4 测试 fso.json 效果 http://127.0.0.1/fso.json?p=/app/android/myapp.apk
返回结果数据是:
{"path" : "/app/android/myapp.apk", "list" : [{"name" : "myapp.apk", "size" : "12345678", "attr" : "32", "time" : "2020-06-30 12:00:00"}]}
就 OK 了.
======================================
2. 修改你的 APP 项目:
2.1 加入 AndroidUpdating.pas 到你的 APP 项目
2.2 你的 APP 主窗口(TMainForm)引用 AndroidUpdating 单元
uses
...,
AndroidUpdating;
provate
FUpdating : TAndroidUpdating;
// 释放指针过程: NotifyFreeUpdating
procedure TMainform.NotifyFreeUpdating;
begin
FreeAndNil(FUpdating); // 同步释放: (不建议, 等于是在类内部过程中调用释放)
// 异步释放: (建议) 通过 TTimer 来进行, 过程自己去写
end;
// 执行版本检查与自动更新, 写到最后一行比较好
procedure TMainform.FromCreate(Sender : TObject);
begin
...
FUpdating := TAndroidUpdating.Create(Self, 'http://127.0.0.1/app/android/myapp.apk', NotifyFreeUpdating);
end;
2.3 修改 APP 项目设置 (建议在 All Configurations - Android 修改) 以下必须要勾选
Options - Application - Entitlement List - Secure File Sharing
Options - Application - Uses Premissions - Write external stoage
Options - Application - Uses Premissions - Request install packages
2.4 修改 APP 项目文件夹内的 AndroidManifest.template.xml 在 <application ...> 中加入一行
android:usesCleartextTraffic="true"
即:
<application
...
android:usesCleartextTraffic="true">
说明: 如果是 http:// 必须加, 如果是 https:// 就可以不加, 自行决定
======================================
3. 收工!
Delphi Android APP 自动检查更新(2020.07)
5星 · 超过95%的资源 需积分: 50 146 浏览量
2020-07-03
15:52:54
上传
评论 3
收藏 5KB ZIP 举报
sczyq
- 粉丝: 106
- 资源: 27
最新资源
- mosquitto-2.018-install-windows-x64
- FTPServer FTP 服务器,绿色免安装,单文件
- 梦畅语音点名软件,上课点名
- 利用ADNI数据集和标签,在tensorflow框架上使用tensorlayer接口,通过架构u-net实现海马体的分割
- Kutools for Word v9.0 office word 插件
- 修复Windows 10 LTSC 2021资源占用率高
- Hash工具,小巧绿色hash校验工具,免费hash工具
- 重启进行BIOS快捷方式,不需要开机按BIOS键
- 鸭子开车记(儿童绘本)
- 威纶通触摸屏编程软件Easy builder pro V6.09.01.556安装包(2024.04).txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈