Bagikan melalui


WebView.AddWebAllowedObject(String, Object) Metode

Definisi

Menambahkan objek Windows Runtime asli sebagai parameter global ke dokumen tingkat atas di dalam 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)

Parameter

name
String

Platform::String

winrt::hstring

Nama objek untuk diekspos ke dokumen di WebView.

pObject
Object

Platform::Object

IInspectable

Objek yang akan diekspos ke dokumen di WebView.

Contoh

Contoh ini menunjukkan cara menghias kelas dengan atribut AllowForWeb .

using Windows.Foundation.Metadata;

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

        ...
    }
}

Contoh ini menunjukkan menggunakan peristiwa NavigationStarting untuk menyuntikkan objek saat navigasi dimulai.

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

Berikut cara mengakses objek asli dalam skrip di halaman web.

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

Keterangan

Gunakan metode ini untuk mengekspos objek Windows Runtime asli sebagai parameter global dalam konteks dokumen tingkat atas di dalam WebView. Agar objek Windows Runtime diproyeksikan, objek harus gesit dan dihiasi dengan atribut AllowForWeb .

Catatan

Kelas runtime yang dibuat menggunakan ekstensi komponen Microsoft Visual Basic, C# atau Visual C++ (C++/CX) gesit secara default. Untuk informasi selengkapnya, lihat Threading dan Marshaling dan Menggunakan objek Windows Runtime di lingkungan multithreaded.

Objek yang diteruskan ke AddWebAllowedObject harus diimpor dari komponen Windows Runtime yang terpisah dari rakitan aplikasi. Ini diperlukan agar atribut AllowForWeb diidentifikasi oleh subsistem keamanan WebView . Jika Anda menggunakan kelas dari proyek aplikasi, AddWebAllowedObject tidak berfungsi.

Anda harus memanggil AddWebAllowedObject setiap kali WebView dinavigasi ke halaman baru yang mengakses objek asli. Anda dapat menggunakan peristiwa WebView.NavigationStarting untuk menyuntikkan objek saat navigasi dimulai.

Berlaku untuk