首页 > 系统服务 > 详细

Mac上使用Qt捕获自定义协议

时间:2020-08-30 13:50:45      阅读:80      评论:0      收藏:0      [点我收藏+]

有些时候要给应用添加自定义的协议来通过浏览器唤起引用。

1. 注册协议

在Mac上的实现方式是在Info.plist中添加url schema来向系统注册自定义协议,在浏览器中访问注册过的协议,系统会打开app。

技术分享图片

 

2. 捕获链接

只是注册协议并不能得到用户的具体请求,还需要通过代码来读取系统链接的打开时间,在Qt中这是通过fileopen的事件来传递的。代码中的SingleApplication继承自QApplication。

bool SingleApplication::event(QEvent *event)
{
    if (event->type() == QEvent::FileOpen) {
        QFileOpenEvent *openEvent = static_cast<QFileOpenEvent *>(event);
        if (!openEvent->file().isEmpty()) {
              //xxx
        } else if (openEvent->url().isValid()) {
              //xxx
        }
    }

    return QApplication::event(event);
}    

 

Mac上使用Qt捕获自定义协议

原文:https://www.cnblogs.com/vectorli/p/13584664.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!