美文网首页
如何实现二维码下载ios app方案

如何实现二维码下载ios app方案

作者: 多喝热开水 | 来源:发表于2020-08-08 09:48 被阅读0次

目前我们一般采用的是使用itms-services 来实现下载(升级)。
itms-services 的地址是:
itms-services://?action=download-manifest&url=你得plist存放地址(要是https)

由网上可知
plist file模板

<?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>${ipaDownloadUrl}</string>
                    </dict>
                </array>
                <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>${identifier}</string>
                    <key>bundle-version</key>
                    <string>${version}</string>
                    <key>kind</key>
                    <string>software</string>
                    <key>subtitle</key>
                    <string>${subtitle}</string>
                    <key>title</key>
                    <string>${title}</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

如果有自建服务器的话,可以在服务器代码中直接生成plist
在java controller 中:

/**
     *  制作plist文件
     * */
    @PostMapping("/app/getPlistFile")
    public void getPlistFile(@RequestBody JSONObject jsonObject, HttpServletRequest request, HttpServletResponse response) {
       // 获取嵌入的字段
        String appName = param.getString("appName");
        String ipaURL = param.getString("ipaURL");
        String bundleID = param.getString("bundleID");
        String iconURL = param.getString("iconURL");
        
        String content = PlistUtil.generateContent("plist.ftl",data);
       

        // 直接构建文本返回参数
        try {
            File newFileName = new File(localFileName);
            response.setContentType("application/force-download");
            appName = new String(appName.getBytes("UTF-8"), "iso-8859-1");
            response.setHeader("Content-Disposition", "attachment;filename=" + appName+".plist");
            response.setHeader("Content-Length", "" + newFileName.length());

            byte[] buffer = new byte[1024];

            OutputStream os = response.getOutputStream();
            FileInputStream fis = new FileInputStream(new File(localFileName));
            BufferedInputStream bis = new BufferedInputStream(fis);
            int i = bis.read(buffer);
            while (i != -1) {
                os.write(buffer);
                i = bis.read(buffer);
            }
            try {
                bis.close();
            } catch (Exception e) {
            }
            try {
                fis.close();
            } catch (Exception e) {
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
  }

二维码生成
草料二维码
通过草料二维码即可生成二维码


通过github的服务地址实现下载
直接将plist文件直接上传到git仓库中,将URL直接放置在itms-services 链接中即可实现


相关文章

网友评论

      本文标题:如何实现二维码下载ios app方案

      本文链接:https://www.haomeiwen.com/subject/bbiirktx.html