Partage via


WebView.AddWebAllowedObject(String, Object) Méthode

Définition

Ajoute un objet Windows Runtime natif en tant que paramètre global au document de niveau supérieur à l’intérieur d’un WebView.

public:
 virtual void AddWebAllowedObject(Platform::String ^ name, Platform::Object ^ pObject) = AddWebAllowedObject;
void AddWebAllowedObject(winrt::hstring const& name, IInspectable const& pObject);
public void AddWebAllowedObject(string name, object pObject);
function addWebAllowedObject(name, pObject)
Public Sub AddWebAllowedObject (name As String, pObject As Object)

Paramètres

name
String

Platform::String

winrt::hstring

Nom de l’objet à exposer au document dans le WebView.

pObject
Object

Platform::Object

IInspectable

Objet à exposer au document dans le WebView.

Exemples

Cet exemple montre comment décorer une classe avec l’attribut AllowForWeb .

using Windows.Foundation.Metadata;

namespace MyRuntimeComponent
{
    [AllowForWeb]
    public sealed class MyNativeClass
    {
        public void NativeMethod()
        {
            ...
        }

        ...
    }
}

Cet exemple illustre l’utilisation de l’événement NavigationStarting pour injecter un objet au début de la navigation.

<WebView x:Name="webView" Source="https://www.contoso.com/index.html"
         NavigationStarting="webView_NavigationStarting"/>
private void webView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) 
{ 
    if (args.Uri.Host == "www.contoso.com")  
    { 
        webView.AddWebAllowedObject("nativeObject", new MyNativeClass()); 
    } 
} 

Voici comment accéder à l’objet natif dans un script de la page web.

<script type='text/javascript'>
    nativeObject.nativeMethod(); // Call the projected WinRT method.
</script>

Remarques

Utilisez cette méthode pour exposer un objet Windows Runtime natif en tant que paramètre global dans le contexte du document de niveau supérieur à l’intérieur d’un WebView. Pour qu’un objet Windows Runtime soit projeté, il doit être agile et décoré avec l’attribut AllowForWeb.

Notes

Les classes runtime créées à l’aide des extensions de composant Microsoft Visual Basic, C# ou Visual C++ (C++/CX) sont agiles par défaut. Pour plus d’informations, consultez Threading and Marshaling et Utilisation d’objets Windows Runtime dans un environnement multithread.

L’objet passé dans AddWebAllowedObject doit être importé à partir d’un composant Windows Runtime distinct de l’assembly d’application. Cela est nécessaire pour que la propriété AllowForWeb soit identifiée par le sous-système de sécurité WebView . Si vous utilisez une classe de votre projet d’application, AddWebAllowedObject ne fonctionne pas.

Vous devez appeler AddWebAllowedObject chaque fois que WebView accède à une nouvelle page qui accède à l’objet natif. Vous pouvez utiliser l’événement WebView.NavigationStarting pour injecter l’objet au début de la navigation.

S’applique à