IOS 扫码下载解决方案
Step0 将打包好的 ipa 格式文件部署到下载服务器上
比如放在 tomcat 中供下载:dingdian.ipa
然后将 ipa 包所在的服务器地址配置成内网、外网等形式,生成二维码地址或者链接。
如:http://apexsoft.dingdian.ios.download/app_update/dingdian/dev/ios/dingdian.ipa
注:有图标的还要放上图标信息。
Step1 将 plist 文件放到 https
服务器上做代理
可以使用 github
、gitee
等服务器。
新建仓库、导入附件一的代码到仓库文件中,比如,新建仓库:ios-dingdian-ipa-download
,新建文件 dingdian.plist
,粘贴附件一代码。提交后点击 row
或者 原始数据
生成文件链接。
注:plist 文件中的 bundleid 以及文件下载地址等配置项需要自行配置。
Step2 将下载页面放到下载服务器上
下载配置页面是指用户扫码到该页面,由该页面来判断用户终端,然后去走对应的下载方案,需要用这个文件生成下载二维码。
详细代码见 附件二。
注:下载页面代码也要根据客户实际情况调整下载地址
Step3 写在最后
ios下载并不复杂,唯一要注意的是,下载时需要经过 plist 文件代理一下,比安卓的下载多一个步骤。
安卓下载:生成服务器下载地址的链接——> 通过链接生成二维码 ——> 扫码访问下载地址下载。
ios下载:生成服务器下载地址的链接——> 挂载 plist 文件指向服务器下载地址 ——> 编写下载页面访问 plist ——> 生成下载页面的二维码 ——> 扫码访问下载页面(访问 plist ,然后获取下载地址)下载。
本文所需要的软硬件配置以及文件:
- Ipa 包
- 下载服务器
- plist文件
- plist代理
- logo图片
- 下载页面文件
下载服务器上:
// ip/opt/download/dingdian/
dingdian.ipa
download_page_dingdian.html
logo.png
display_icon.png
gitee服务器上:
// https://gitee.com/apexsoft/dingdian/download/master
dingdian.plist
README.md
附件一:Step1 plist 文件代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://apexsoft.dingdian.ios.download/app_update/dingdian/dev/ios/dingdian.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>http://apexsoft.dingdian.ios.download/app_update/dingdian/dev/ios/logo.png</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>http://apexsoft.dingdian.ios.download/app_update/dingdian/dev/ios/dingdian.ipa/display._icon.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>cn.com.dingdian.ios</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>by AssetsDepartment</string>
<key>title</key>
<string>顶点软件</string>
</dict>
</dict>
</array>
</dict>
</plist>
附件二:
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-store, must-revalidate">
<meta http-equiv="expires" content="0">
<title>顶点软件</title>
</head>
<body>
<div id="wxalert" style="display:none;">
<p></p>
<p style="font-size:50px;color: chocolate;text-align: center;padding-left: 100px;padding-right: 100px;">
您使用的是微信,无法直接安装,请点击右上角选项菜单,选择"在浏览器中打开"。</p>
</div>
<script type="text/javascript">
var androidDownCount = 0
var iosDownCount = 0
if (/android/i.test(navigator.userAgent)) {
if (/micromessenger/i.test(navigator.userAgent)) {
document.getElementById("wxalert").style.display = "";
} else {
window.location.href = "http://apexsoft.dingdian.ios.download/app_update/dingdian/dev/ios/dingdian.apk";
androidDownCount++;
}
} else if (/ipad|iphone|mac/i.test(navigator.userAgent)) {
if (/micromessenger/i.test(navigator.userAgent)) {
document.getElementById("wxalert").style.display = "";
} else {
window.location.href = "itms-services://?action=download-manifest&url=https://gitee.com/apexsoft/dingdian/raw/master/dingdian.plist";
iosDownCount++;
}
} else {
window.location.href = "http://apexsoft.dingdian.ios.download/app_update/dingdian/dev/ios/dingdian.apk";
androidDownCount++;
}
</script>
</body>
</html>
标签:dingdian,扫码,IOS,ios,React,download,服务器,plist,下载
From: https://www.cnblogs.com/ExileRiven/p/17210457.html