안녕하세요.
밑에 올린 help파일 관련 문제를 어찌 해결할까 고민하다가 박문찬님 말씀대로 블로그를 하나 만들어 거기에 help 파일을 붙이기로 하고 Webview2 컨트롤을 이용해서 다음과 같이 구현을 했습니다.
1. HelpView XAML
<Window x:Class="PayEstPractice.Views.HelpWeb"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:PayEstPractice.Views"
xmlns:local1="clr-namespace:PayEstPractice.ViewModel"
xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf" Background="AliceBlue"
ResizeMode="NoResize"
mc:Ignorable="d"
Title="HelpWeb" Height="500" Width="750">
<Window.DataContext>
<local1:PersonalViewModel/>
</Window.DataContext>
<Grid>
<DockPanel>
<wv2:WebView2 Name="webView" Source="https://mamdero.blogspot.com" />
</DockPanel>
</Grid>
</Window>
2. MVVM-Viewmodel
public ICommand HelpNaviCommand { get; }//to navigate help view
HelpNaviCommand = new RelayCommand(HelpNavi);
private void HelpNavi()
{
Views.HelpWeb hw = new Views.HelpWeb();
string text = "https://mamdero.blogspot.com";
hw.webView.CoreWebView2.Navigate(text);
}
위와 같이 구현한 코드를 실행시켰더니
위와 같은 에러 메시지가 나오네요.
어디가 잘못된 것인지 지적해 주심 감사하겠습니다.
댓글
댓글 리스트-
작성자카키104 작성시간 21.08.26 https://stackoverflow.com/questions/63116740/why-my-corewebview2-which-is-object-of-webview2-is-null
내용을 참고하시면 될것 같습니다. -
작성자심재운 작성시간 21.08.26 https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section 에 있는 Evergreen Standalone Installer 의 WebView2 Runtime 을 설치해야 하다는 말씀이죠? 😁😁😁😁😁😁😁
-
작성자c00012 작성자 본인 여부 작성자 작성시간 21.08.26 문제를 해결했습니다. webview 객체의 초기화 문제였는데, 코드를 다음과 같이 바꿔서 해결했습니다.
private async void HelpNavi()
{
Views.HelpWeb hw = new Views.HelpWeb();
hw.Show();
await hw.webView.EnsureCoreWebView2Async(null);
hw.webView.CoreWebView2.Navigate(WebViewSource);
}
코드를 이렇게 바꿔서 웹 뷰 객체에서 제 블로그가 나오는 거까지는 확인을 했는데, 희한한 게 하나 있더군요.
await hw.webView.EnsureCoreWebView2Async(null);
위 코드에 VS에서 권고하는 대로 코드를 바꿔서
await hw.webView.EnsureCoreWebView2Async(null).configureawait(false);
위와 같이 하면 에러가 뜨고 configurewait를 해제하면 잘 됩니다. 왜 그런지는 더 연구해봐야겠네요. 박문찬님 조언 감사드립니다