如何创建执行命令的二维码? [复制]

Posted

技术标签:

【中文标题】如何创建执行命令的二维码? [复制]【英文标题】:How to create a QR code that execute command? [duplicate] 【发布时间】:2022-01-14 19:44:11 【问题描述】:

我见过一些例子,人们在二维码上编写可执行代码,例如https://itsmattkc.com/etc/snakeqr/。我想创建一个二维码来执行命令以打开任何手机(androidios)的特定手机应用程序。 流程会是这样,

    用手机扫描二维码。 手机执行存储在 QR 码中的命令(在 C 语言中执行类似于 "start C:\...\specific app" 的代码)并打开应用程序或提示用户如果手机上没有安装该应用程序,请下载它。 关闭用于执行命令的窗口(如果有)。

我现在的问题是,

    可以使用什么语言来编写打开手机应用程序的命令,就像我上面所说的那样? 如何将二维码变成二维码?

【问题讨论】:

可能与以下内容重复:How to launch my Android app from a QR reader? 确实有帮助,但 Chris Schaller 的回答正是我所需要的。 【参考方案1】:

背景 二维码本身不执行任何操作,从高层次上看,二维码只是一种将字节数组序列化为可视形式的方法,阅读器可以对图像进行反序列化返回一个字节数组,然后必须对其进行解释。

通用二维码阅读器一般会假设原始数据表示一个编码字符串,因此会将字节解码为字符串。

SnakeQR 中的说明告诉您使用 QR 阅读器,该阅读器允许您将字节保存到磁盘,而不是将它们解码为字符串,这仅表明 QR 码包含二进制数据并且数据本身不包含'什么都不做,用户需要获取该数据并完成下一步以对其进行操作,但该操作取决于用户。

这是魔法开始发生的时候,如果 QR 码代表或包含 URL,那么大多数阅读器应用程序将自动启动 Web 浏览器并导航到该 URL。

在应用开发世界中,我们可以通过 3 种方式劫持这些 QR 码阅读器的默认行为以与设备进行交互:

    编写一个网页,该网页将执行脚本以在导航到该页面的设备上完成您的操作,将其托管在全球可访问的某个地方,并将该页面的 URL 存储在您的二维码中。

    使用设备将识别为内部位置的 URI,这篇文章 How to launch my android app from a QR reader 描述了这个过程,在 android 应用程序 API 中你可以定义这些 intents,有效地注册一个带有具体操作。

    对此的细节超出了范围,这个问题是关于 QR 码本身的,但大多数操作系统都有类似的过程,其中有标准操作绑定到 URI,并且通常有一种机制供您创建自定义绑定.

    编写您自己的专有二维码阅读器应用程序,该应用程序可以本机理解二维码中的命令并可以直接执行。

就支持这一点的语言而言,它不是特定于语言的东西,在 Android 应用程序中,您要利用的机制是 Android Intents Tutorial (Android Developers - Intents)。

多年来,iOS 中出现了混合版本的 URL 绑定,但SiriKit 在功能方面可能是最接近的,它比 android 受限得多,但足以启动应用程序并传递参数。

在 Windows 操作系统中,您可以注册 URI 方案来做同样的事情...

当涉及到专有逻辑时,我们可以使用所有 3 种方法来为用户构建无缝体验:

    制作一个登录网页,其中包含如下消息:“如果您看到此页面,那么您应该安装我的应用程序以获得增强的体验...”(在此页面上应该有关于如何查找并安装您的应用) 使用您希望作为 URL 参数传递给应用程序的参数将 QR 码设置为登录页面的 URL。 构建并发布您的应用程序,在此应用程序中,您应该使用本机设备操作系统注册登录页面的 URI,以便在安装设备后运行您的应用程序,而不是用户转到登录页面。不要忘记将任何参数映射为应用的启动参数。

【讨论】:

以上是关于如何创建执行命令的二维码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在linux复制命令行的快捷键

如何将执行的shell命令的结果存储在python的变量中? [复制]

MSBuild:如何将文件复制到由执行命令的输出确定的 DestinationFolder?

如何在同一命令行中的文件上执行 python 脚本? [复制]

需要创建一个批处理文件以使用 winzip 可执行命令行提取 zip 文件夹并复制到多个位置

如何在执行复制到命令以选择具有固定前缀的文件时提供正则表达式模式?