实现IOS安装的二维码(plist,nodeJS)

二维码的生成

二维码的黑白点里隐藏的信息是什么?是IOS项目的特有超链接格式:

itms-services:///?action=download-manifest&url=(plist文件的URL)

可见核心在于plist文件的位置,以及plist文件中的内容。

plist文件配置

app.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>IPA文件的URL</string>
          </dict>
        </array>
        <key>metadata</key>
        <dict>
          <key>bundle-identifier</key>
          <string>开发者证书用户名即bundleId</string>
          <key>bundle-version</key>
          <string>1.0</string>
          <key>kind</key>
          <string>software</string>
          <key>title</key>
          <string>AAl</string>
        </dict>
      </dict>
    </array>
  </dict>
</plist>

在这里,我们又发现了另外一个关键点,即ipa文件的URL。可以说,这个需求的核心步骤是这两个URL的定位。

动态读写plist文件

由于项目是基于nodeJS,那真是一件令人兴奋的事情。像这种繁琐的文件读写操作,node在npm的支持下,这简直易如反掌。我们选用npm的plist模块,这个模块可以轻松操作plist文件,包括读写。
https://www.npmjs.com/package/plist
基本使用方法如下:

  • 引入模块
var fs = require('fs');
var plist = require('plist');
  • 读取文件
data = fs.readFileSync(plistUrl, 'utf-8')
  • parse()
var obj = plist.parse(data, 'utf-8')
console.log(obj)
console.log(obj.items[0].assets)
console.log(obj.items[0].assets[0].url)

打印结果如下:

{ items: [ { assets: [Array], metadata: [Object] } ] }
[ { kind: 'software-package', url: 'IPA文件的URL' } ]
IPA文件的URL
  • 修改节点
obj.items[0].assets[0].url = `new url`
console.log(obj.items[0].assets[0].url)
obj = plist.build(obj)

打印结果如下:

new url
  • 写入文件完成更新
fs.writeFile(plistUrl, obj, err => {
  if (err) {
      // 错误处理
  }
})

这样我们就完成了plist文件的读取,结合前端传来的数据对plist文件进行修改。

生成二维码

天秀的npm又来了,虽然我们知道二维码就是01码去生成的,但是单独去写一个二维码的呈现似乎不太经济,qrcodejs2帮我们完成。

let qrcode = document.getElementById("qrcode");
qrcode.innerHTML = ""
new QRCode(qrcode, {
    width: 250, // 设置宽度
    height: 250, // 设置高度
    text: '我想将这串字符串转成二维码'
});

生成的二维码如下:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值