WebViewControl.AddInitializeScript(String) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ContentLoading 직후에 다른 스크립트가 페이지에서 실행되기 전에 WebViewControl에 스크립트를 삽입합니다.
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)
매개 변수
- script
-
String
Platform::String
winrt::hstring
구현
M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(System.String)
M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(Platform::String)
M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(winrt::hstring)
Windows 요구 사항
디바이스 패밀리 |
Windows 10, version 1809 (10.0.17763.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v7.0에서 도입되었습니다.)
|
예제
다음 코드는 페이지 로드 시 스크립트 삽입의 C# 샘플입니다.
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"));
앱은 InvokeScriptAsync를 사용하여 WebViewControl에 스크립트를 삽입하여 추가 기능을 제공하거나 페이지를 변경할 수 있습니다. 그러나 InvokeScriptAsync는 스크립트가 실행되는 시기를 보장하지 않으며 DOMContentLoaded 가 발생하기 전에 앱이 호출하는 경우 스크립트가 이전 페이지에 삽입될 위험이 있습니다. 이 예제에서는 페이지의 스크립트가 실행되기 전에 실행될 탐색(또는 NavigationStarting 중)전에 앱에서 스크립트를 제공하는 방법을 제공합니다.