QWebEnginePermission Class

QWebEnginePermission は、特定のオリジン URL に付与または拒否された単一のパーミッションにアクセスし、その状態を変更するために使用されるオブジェクトです。詳細...

Header: #include <QWebEnginePermission>
CMake: find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmake: QT += webenginecore
Since: Qt 6.8
In QML: webEnginePermission

パブリックタイプ

enum class PermissionType { MediaAudioCapture, MediaVideoCapture, MediaAudioVideoCapture, DesktopVideoCapture, DesktopAudioVideoCapture, …, Unsupported }
enum class State { Invalid, Ask, Granted, Denied }

プロパティ

パブリック関数

void deny() const
void grant() const
bool isValid() const
QUrl origin() const
QWebEnginePermission::PermissionType permissionType() const
void reset() const
QWebEnginePermission::State state() const

静的パブリックメンバ

bool isPersistent(QWebEnginePermission::PermissionType permissionType)

詳細説明

典型的な使用パターンは以下の通り:

  1. ウェブサイトが特定の許可を要求し、QWebEnginePage::permissionRequested() シグナルをトリガーする;
  2. シグナルハンドラは、ユーザーに許可を与えるかどうかを尋ねるプロンプトをトリガーする;
  3. ユーザーが決定すると、アプリケーションはgrant ()またはdeny ()を呼び出す;

あるいは、既に許可されているパーミッションの変更に興味があるアプリケーションは、QWebEngineProfile::listAllPermissions() を使用してプロファイルに関連付けられた既存のパーミッションのリストを取得したり、QWebEngineProfile::queryPermission() を使用して特定のパーミッションの QWebEnginePermission オブジェクトを取得したりすることができます。

origin() プロパティは、QWebEnginePermission がどのオリジンに関連付けられているかを問い合わせるために使用でき、permissionType() プロパティは要求されたパーミッションのタイプを記述します。Web サイトのオリジンは、スキーム、ホスト名、およびポートの組み合わせです。したがって、Web ページhttps://www.example.com:12345/some/page.html がパーミッションを要求した場合、そのパーミッションはオリジンhttps://www.example.com:12345/ に付与されます。

QWebEnginePermission::PermissionType Qt がサポートするすべてのパーミッション・タイプについて説明します。いくつかのパーミッション・タイプだけが、ブラウジング・セッション間で記憶されます。永続的でないパーミッションは、ウェブサイトから要求されるたびにユーザーに問い合わせます。パーミッション・タイプが永続的かどうかは、静的メソッド () を使って実行時に確認することができます。WebEngine QWebEnginePermission::isPersistent

永続的なパーミッションは、アクティブなQWebEngineProfile 内に格納され、その有効期限はQWebEngineProfile::persistentPermissionsPolicy() の値に依存する。デフォルトでは、名前付きプロファイルはパーミッションをディスクに保存しますが、記録外のものはメモリに保存します(プロファイルが破棄されると破棄されます)。保存されたパーミッションは、次にウェブサイトがそれを要求したときにユーザーに問い合わせることはありません。代わりに、ユーザーが最初に選んだ解決策に応じて、自動的に許可または拒否されます。保存されたパーミッションを消去するには、reset()を呼び出します。

一方、永続的でないパーミッションは、関連するQWebEnginePage が別の URL へのナビゲーションを実行するか、破棄されるまでしか使用できません。

QWebEnginePermission が有効な状態にあるかどうかは、isValid() プロパティを使用して確認できます。無効なオブジェクトの場合、grant()、deny()、またはreset() を呼び出しても何も実行されませんが、state() を呼び出すと、常にQWebEnginePermission::Invalid が返されます。

QWebEnginePage::permissionRequested(),QWebEngineProfile::queryPermission(),QWebEngineProfile::listAllPermissions()も参照

メンバ型ドキュメント

enum class QWebEnginePermission::PermissionType

この列挙型は、要求されたパーミッションの型を保持する:

定数説明
QWebEnginePermission::PermissionType::MediaAudioCapture1マイク、または他のオーディオソースへのアクセス。このパーミッションは永続的ではない
QWebEnginePermission::PermissionType::MediaVideoCapture2ウェブカメラ、または他のビデオソースへのアクセス。このパーミッションは永続的ではない
QWebEnginePermission::PermissionType::MediaAudioVideoCapture3MediaAudioCaptureとMediaVideoCaptureの組み合わせ。このパーミッションは永続的ではない
QWebEnginePermission::PermissionType::DesktopVideoCapture4ユーザーの画面のコンテンツへのアクセス。このパーミッションは永続的ではありません。
QWebEnginePermission::PermissionType::DesktopAudioVideoCapture5ユーザーの画面のコンテンツとアプリケーション・オーディオへのアクセス。このパーミッションは永続的ではありません。
QWebEnginePermission::PermissionType::MouseLock6Web ページ上の要素内のポインタをロックします。このパーミッションは永続的ではありません。
QWebEnginePermission::PermissionType::Notifications7Webサイトがユーザーに通知を送信することを許可します。このパーミッションは永続的です。
QWebEnginePermission::PermissionType::Geolocation8ユーザーの物理的な場所へのアクセスを許可します。このパーミッションは永続的です。
QWebEnginePermission::PermissionType::ClipboardReadWrite9ユーザーのクリップボードへのアクセスを許可します。このパーミッションは永続的です。
QWebEnginePermission::PermissionType::LocalFontsAccess10ユーザーのマシンにインストールされているフォントへのアクセス。デスクトップでのみ使用可能。このパーミッションは永続的です。
QWebEnginePermission::PermissionType::Unsupported0サポートされていない権限タイプ。

注意: 永続的でないパーミッション・タイプは、基礎となるストレージによって決して記憶されないものであり、Webサイトがそれらを使用しようとするたびにパーミッション要求がトリガされます。

enum class QWebEnginePermission::State

この列挙型は要求されたパーミッションの現在の状態を保持する:

定数説明
QWebEnginePermission::State::Invalid0オブジェクトは無効な状態にあり、記述されたパーミッションを変更しようとすると失敗します。
QWebEnginePermission::State::Ask1パーミッションが以前に要求されていないか、permissionType() が永続的でない。
QWebEnginePermission::State::Granted2パーミッションは既に付与されています。
QWebEnginePermission::State::Denied3パーミッションはすでに拒否されています。

プロパティの説明

[read-only] isValid : const bool

パーミッションの状態を変更する試みが成功するかどうかを示す。

無効なQWebEnginePermission は以下のいずれかである:

  • permissionType() がサポートされていないもの;
  • origin() が無効なもの;
  • 関連プロファイルが破棄されたもの。

アクセス関数:

bool isValid() const

isPersistent()も参照

[read-only] origin : const QUrl

このプロパティは、パーミッションに関連付けられたオリジンの URL を保持します。

ウェブサイトのオリジンは、スキーム、ホスト名、およびポートの組み合わせです。したがって、Web ページhttps://www.example.com:12345/some/page.html がパーミッションを要求した場合、そのパーミッションはオリジンhttps://www.example.com:12345/ に付与されます。

アクセス関数:

QUrl origin() const

[read-only] permissionType : const PermissionType

このプロパティは、このパーミッションに関連付けられたパーミッション・タイプを保持します。

アクセス関数:

QWebEnginePermission::PermissionType permissionType() const

[read-only] state : const State

このプロパティは、許可の現在の状態を保持する。

指定されたpermissionType ()およびorigin ()に対するパーミッションがすでに許可または拒否されている場合、戻り値はそれぞれQWebEnginePermission::Granted 、またはQWebEnginePermission::Denied 。初めてパーミッションが要求された場合、返り値はQWebEnginePermission::Ask となる。 オブジェクトが無効な状態の場合、返り値はQWebEnginePermission::Invalid となる。

アクセス関数:

QWebEnginePermission::State state() const

isValid() およびisPersistent()も参照のこと

メンバ関数ドキュメント

[invokable] void QWebEnginePermission::deny() const

関連するオリジンが要求されたpermissionType へのアクセスを停止する。isValid() が false と評価された場合は何も行いません。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

grant()、reset()、isValid()も参照してください

[invokable] void QWebEnginePermission::grant() const

関連するオリジンが要求されたpermissionType にアクセスできるようにします。isValid() が false と評価された場合は何もしません。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

deny()、reset()、isValid()も参照

[static invokable] bool QWebEnginePermission::isPersistent(QWebEnginePermission::PermissionType permissionType)

permissionType永続的であるかどうかを返します。つまり、パーミッションの状態は記憶され、次回ウェブサイトが同じパーミッションを要求したときに、ユーザーに問い合わせが行われることはありません。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] void QWebEnginePermission::reset() const

プロファイルのストレージからパーミッションを削除します。デフォルトでは、パーミッションはディスク上に保存されます(ただし、off-the-record プロファイルでは、パーミッションはメモリ上に保存され、プロファイルとともに破棄されます)。つまり、すでに許可/拒否されているパーミッションが二度リクエストされることはなく、 ウェブサイトがリクエストするたびに自動的に許可/拒否されるということです。reset()を呼び出すと、次にWebサイトがクエリを要求したときに、そのクエリを再び表示できるようになります。

isValid() が false と評価された場合は、何も行いません。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

grant(),deny(),isValid(),QWebEngineProfile::persistentPermissionsPolicy()も参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。