其他分享
首页 > 其他分享> > Mac上使用Qt捕获自定义协议

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

作者:互联网

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

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);
}    

 

标签:协议,Qt,自定义,QEvent,Mac,注册,openEvent,event
来源: https://www.cnblogs.com/vectorli/p/13584664.html