实现原理是利用配置文件plist,生成二维码进行扫码安装
操作步骤
1、拿到ipa
的包,并且把包放到一个服务器。最简单的方法是直接放到Tomcat
的ROOT
目录下,这样你直接就可以输入地址下载,比如放到/ROOT/app/xxx.ipa
,那么访问地址就是:http://ip:port/app/xxx.ipa
(注意:这里的地址一定要是公网地址)
2、接下来是配置plist
文件。可以直接套用我的模板(见文章末尾)。
3、将配置文件放到具有https
环境下,我用的是github
,登录gitbuh
,新建项目,然后把这个配置文件放到上,下面为截图
4、拼接地址,生成二维码
找到如下图文件之后点击raw
会跳转到一个新界面,将生成的地址再地址栏复制下来,拼接到这地址之后:itms-services:///?action=download-manifest&url=plist地址
(plist地址就是上一步复制的地址,放到等号后)
将拼接好的地址放到二维码生成器中生成地址就可以了此时微信扫码就可以下载了
5、访问下载页面
通过以上步骤可以实现扫码下载,但是如果要输入下载地址就可以访问,那还需要一个下载界面,这个界面的功能就是通过判断是客户端的浏览器就直接跳转到安装路径
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
/*浏览器版本信息*/
var browser = {
versions: function() {
var u = navigator.userAgent, app = navigator.appVersion;
return {//移动终端浏览器版本信息
trident: u.indexOf('Trident') > -1, // IE
presto: u.indexOf('Presto') > -1, // opera
webKit: u.indexOf('AppleWebKit') > -1, // 苹果、谷歌
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, // 火狐
mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), // 是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, // android终端或者uc浏览器
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, // 是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, // 是否iPad
webApp: u.indexOf('Safari') == -1 // 是否web应该程序,没有头部与底部
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
}
if (browser.versions.ios || browser.versions.iPhone) {
window.location="写上面第四步生成的地址"; // ios版本的下载地址
console.log("ios平台");
}
else if (browser.versions.android) {
window.location="写安卓的下载地址"; // android版本的下载地址
console.log("android平台");
}
</script>
</body>
</html>
附件: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://ip:port/app/xxx.ipa)</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://enterprise.cloudpay.com.cn/app/packages/iphone-2x.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>BT.Avanker</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>这里写下你的包名称</string>
</dict>
</dict>
</array>
</dict>
</plist>
网友评论