Поделиться через


WebView.AddWebAllowedObject(String, Object) Метод

Определение

Добавляет собственный объект среда выполнения Windows в качестве глобального параметра в документ верхнего уровня внутри 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)

Параметры

name
String

Platform::String

winrt::hstring

Имя объекта, доступного для документа в WebView.

pObject
Object

Platform::Object

IInspectable

Объект, предоставляемый документу в WebView.

Примеры

В этом примере показано, как украсить класс атрибутом AllowForWeb .

using Windows.Foundation.Metadata;

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

        ...
    }
}

В этом примере демонстрируется использование события NavigationStarting для внедрения объекта при начале навигации.

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

Вот как получить доступ к собственному объекту в скрипте на веб-странице.

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

Комментарии

Используйте этот метод для предоставления собственного объекта среда выполнения Windows в качестве глобального параметра в контексте документа верхнего уровня в WebView. Чтобы объект среда выполнения Windows проецировался, он должен быть гибким и украшен атрибутом AllowForWeb.

Примечание

Классы среды выполнения, созданные с помощью расширений компонентов Microsoft Visual Basic, C# или Visual C++ (C++/CX), по умолчанию являются гибкими. Дополнительные сведения см. в разделах Потоки и маршалинг и Использование объектов среда выполнения Windows в многопоточной среде.

Объект, передаваемый в AddWebAllowedObject, должен быть импортирован из компонента среда выполнения Windows, который отделен от сборки приложения. Это необходимо, чтобы атрибут AllowForWeb был свойством, определяемым подсистемой безопасности WebView . Если вы используете класс из проекта приложения, AddWebAllowedObject не работает.

Необходимо вызывать AddWebAllowedObject при каждом переходе WebView на новую страницу, которая обращается к собственному объекту. Событие WebView.NavigationStarting можно использовать для внедрения объекта при начале навигации.

Применяется к