前言
项目背景:客户使用产品时,识别url链接后,会弹出alert提示框,关闭后会一直弹出;识别其他链接(如:https://www.baidu.com/),就不会弹出提示,分析后发现,客户识别的是自己内部url,内部处理可能存在问题,所以需要屏蔽alert提示框。
示例代码
查阅相关资料,需要继承QWebEnginePage,处理一些虚函数。使用子类对象识别url,就可以了,完美解决。
class WebHtmlContentPage : public QWebEnginePage
{
Q_OBJECT
public:
WebHtmlContentPage(){}
~WebHtmlContentPage(){}
protected:
//屏蔽alert提示
virtual void javaScriptAlert(const QUrl &securityOrigin, const QString &msg)
{
return;
}
//其他场景自行处理
/*virtual bool javaScriptConfirm(const QUrl &securityOrigin, const QString &msg)
{
return false;
}
virtual void javaScriptConsoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID)
{
return;
}
virtual bool javaScriptPrompt(const QUrl &securityOrigin, const QString &msg, const QString &defaultValue, QString *result)
{
return false;
}*/
};
欢迎批评指正!