评论

微信小程序中使用mdns api扫描局域网内的打印机

使用微信小程序mdns api扫描局域网内的打印机。

在微信的小程序api中,有个wx.startLocalServiceDiscovery(Object object),开始搜索局域网下的 mDNS 服务。它可以搜索局域网内的网络打印机。

下面的代码片段展示怎么使用该API扫描局域网内的打印机,核心代码如下:

data: {
	services:[],
}
startMdns: function () {
    var that = this
    wx.showLoading({
      title: '扫描中...',
    })
    wx.startLocalServiceDiscovery({
      serviceType: '_http._tcp',
      success: function (res) {
        wx.onLocalServiceFound((result) => {
		// 发现服务后,添加到services数组中
          that.data.services.push(result)
        })
      },
      fail: function (err) {
        console.log(err)
      }
    })
	// 设置超时函数,3500ms后结束扫描
    setTimeout(() => {
      wx.hideLoading({
        success: (res) => {},
      })
      wx.stopLocalServiceDiscovery({
        success: (res) => {
       
        },
      }) 
    }, 3500);
  },
最后一次编辑于  2020-11-26  
点赞 2
收藏
评论

3 个评论

  • 胖达-177
    胖达-177
    2023-06-05

    万能云打印小程序,让你的网络打印机秒变微信手机打印机。

    只要你的打印机与手机在同一 wifi,一键自动搜索、匹配您的打印机型号,不用安装APP,不用安装驱程。

    几乎支持所有品牌的打印机,支持常用办公文档、图片打印。简单易用,完全免费,请微信搜索“万能云打印"小程序试用。

    2023-06-05
    赞同
    回复
  • 学长
    学长
    2021-01-29

    请问你是在怎么在打印机设置他的serviceType为_http._tcp.

    2021-01-29
    赞同
    回复 4
    • 学长
      学长
      2021-01-29
      手机连接到打印机提供的wifi,确定在同一局域网上,但是搜索不到数据
      2021-01-29
      回复
    • 学长
      学长
      2021-01-29
      楼主看到了麻烦回复下 急!!!谢谢
      2021-01-29
      回复
    • 欢乐马
      欢乐马
      2021-02-01
      _ipp._tcp.
      2021-02-01
      回复
    • 欢乐马
      欢乐马
      2021-02-01
      两个点 . 不能省
      2021-02-01
      回复
  • 阿卢说他遇到阿玮
    阿卢说他遇到阿玮
    2020-12-02

    请问扫描到之后是怎么连接和打印的?是交给云端/后端程序才能处理?还是有另外的接口可以处理?今天才开始看,没太明白整体的流程。

    2020-12-02
    赞同
    回复 12
    • 神经蛙
      神经蛙
      2020-12-03
      这个api是微信提供的可以扫描局域网内使用mdns的服务,扫描到服务后,可以获取服务的IP和端口,然后使用微信小程序的网络api就可以进行调用。和公网网络请求是一样的,只不过这个只能在局域网中使用。
      2020-12-03
      回复
    • 神经蛙
      神经蛙
      2020-12-03
      连接打印机,和使用打印机进行打印,现在好像还不行,不过网上有人说可以通过蓝牙连接打印机进行打印。没有实际试过
      2020-12-03
      回复
    • 阿卢说他遇到阿玮
      阿卢说他遇到阿玮
      2020-12-03回复神经蛙
      非常感谢,查看了许多手机打印的文章加上您的解答我大致理解了。
      现在理论上是大致是分为四种打印:
      第一种就是您说的局域网直连打印,但小程序貌似还不支持;
      第二种就是蓝牙打印,利用官方提供的蓝牙搜索、传输数据api配合首次用户手动连接/二次自动连接就能进行打印;
      第三种是wifi形式,需要针对每个品牌的wifi打印机进行适配开发,再让用户手动根据每台打印机编号进行配置;
      还有一种是直接发送打印命令给网站后端程序,由后端完成连接和打印工作,前台小程序只负责传递命令。类似第三种,减少了适配和配置工作,但需要自行开发/第三方开发的后端程序。
      2020-12-03
      4
      回复
    • 欢乐马
      欢乐马
      2021-01-26
      看一下 IPP 协议,打印机如果支持IPP协议,那就可以通过IPP协议相关的命令发送打印任务给打印机
      2021-01-26
      回复
    • 阿卢说他遇到阿玮
      阿卢说他遇到阿玮
      2021-01-26回复欢乐马
      问题是扫描到怎么连接,没有接口方法怎么去发送相关命令?
      2021-01-26
      回复
    查看更多(7)
登录 后发表内容