WebViewControl.AddInitializeScript(String) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyuntikkan skrip ke WebViewControl tepat setelah ContentLoading tetapi sebelum skrip lain dijalankan di halaman.
public:
virtual void AddInitializeScript(Platform::String ^ script) = AddInitializeScript;
void AddInitializeScript(winrt::hstring const& script);
public void AddInitializeScript(string script);
function addInitializeScript(script)
Public Sub AddInitializeScript (script As String)
Parameter
- script
-
String
Platform::String
winrt::hstring
Penerapan
Persyaratan Windows
Rangkaian perangkat |
Windows 10, version 1809 (diperkenalkan dalam 10.0.17763.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v7.0)
|
Contoh
Kode berikut adalah sampel C# dari injeksi skrip pada pemuatan halaman:
WebViewControl webViewControl;
// Replace the window.external with a custom object that does postMessage. The app
// script uses ScriptNotify and InvokeScriptAsync to implement PostMessage and invoke
// a messageReceived handler.
String script = @"var realExternal = window.external;
var customExternal = {
postMessage: (message) => { realExternal.notify('PostMessage: ' + message); },
messageReceived: null,
};
window.external = customExternal;";
void ScriptNotifyCallback(WebViewControl sender, WebViewControlScriptNotifyEventArgs args)
{
String response = GetResponseForPostFromWebView(args.value);
sender.InvokeScriptAsync("eval", $"window.external.messageReceived({response});");
}
webViewControl.ScriptNotify += ScriptNotifyCallback;
webViewControl.AddInitializeScript(script);
webViewControl.Navigate(new Uri("http://mydomain.com"));
Menggunakan InvokeScriptAsync, aplikasi dapat menyuntikkan skrip ke webViewControl untuk menyediakan fungsionalitas tambahan atau mengubah halaman. Namun, InvokeScriptAsync tidak memiliki jaminan tentang kapan skrip dijalankan, dan jika aplikasi memanggilnya sebelum DOMContentLoaded dinaikkan , ada risiko bahwa skrip disuntikkan ke halaman sebelumnya. Contoh ini menawarkan cara bagi aplikasi untuk menyediakan skrip sebelum navigasi (atau selama NavigationStarting) yang akan berjalan sebelum skrip apa pun di halaman dijalankan.