WebView.AddWebAllowedObject(String, Object) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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.