diff --git a/windows/ReactNativeWebView.sln b/windows/ReactNativeWebView.sln index b0f11da..4af3230 100644 --- a/windows/ReactNativeWebView.sln +++ b/windows/ReactNativeWebView.sln @@ -34,7 +34,7 @@ EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution ..\node_modules\react-native-windows\JSI\Shared\JSI.Shared.vcxitems*{0cc28589-39e4-4288-b162-97b959f8b843}*SharedItemsImports = 9 - ..\node_modules\react-native-windows\ReactWindowsCore\ReactWindowsCore.vcxitems*{11c084a3-a57c-4296-a679-cac17b603144}*SharedItemsImports = 4 + ..\node_modules\react-native-windows\ReactWindowsCore\ReactWindowsCore-Items.vcxitems*{11c084a3-a57c-4296-a679-cac17b603144}*SharedItemsImports = 4 ..\node_modules\react-native-windows\Chakra\Chakra.vcxitems*{2d5d43d9-cffc-4c40-b4cd-02efb4e2742b}*SharedItemsImports = 4 ..\node_modules\react-native-windows\Mso\Mso.vcxitems*{2d5d43d9-cffc-4c40-b4cd-02efb4e2742b}*SharedItemsImports = 4 ..\node_modules\react-native-windows\Shared\Shared.vcxitems*{2d5d43d9-cffc-4c40-b4cd-02efb4e2742b}*SharedItemsImports = 4 @@ -44,7 +44,6 @@ Global ..\node_modules\react-native-windows\Chakra\Chakra.vcxitems*{c38970c0-5fbf-4d69-90d8-cbac225ae895}*SharedItemsImports = 9 ..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{da8b35b3-da00-4b02-bde6-6a397b3fd46b}*SharedItemsImports = 9 ..\node_modules\react-native-windows\Chakra\Chakra.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 - ..\node_modules\react-native-windows\JSI\Shared\JSI.Shared.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 ..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 ..\node_modules\react-native-windows\Mso\Mso.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 ..\node_modules\react-native-windows\Shared\Shared.vcxitems*{f7d32bd0-2749-483e-9a0d-1635ef7e3136}*SharedItemsImports = 4 diff --git a/windows/ReactNativeWebView/ReactNativeWebView.vcxproj b/windows/ReactNativeWebView/ReactNativeWebView.vcxproj index 0f0ad05..46a756d 100644 --- a/windows/ReactNativeWebView/ReactNativeWebView.vcxproj +++ b/windows/ReactNativeWebView/ReactNativeWebView.vcxproj @@ -1,6 +1,6 @@ - + true true @@ -89,6 +89,7 @@ 28204 _WINRT_DLL;%(PreprocessorDefinitions) $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) + stdcpp17 Console @@ -153,7 +154,7 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. @@ -161,4 +162,4 @@ - + \ No newline at end of file diff --git a/windows/ReactNativeWebView/ReactWebView.cpp b/windows/ReactNativeWebView/ReactWebView.cpp index 6127fbe..045cec4 100644 --- a/windows/ReactNativeWebView/ReactWebView.cpp +++ b/windows/ReactNativeWebView/ReactWebView.cpp @@ -5,8 +5,8 @@ #include "JSValueXaml.h" #include "ReactWebView.h" #include "ReactWebView.g.cpp" - - +#include +#include namespace winrt { using namespace Microsoft::ReactNative; @@ -63,11 +63,22 @@ namespace winrt::ReactNativeWebView::implementation { }); } + bool Is17763OrHigher() { + static std::optional hasUniversalAPIContract_v7; + + if (!hasUniversalAPIContract_v7.has_value()) { + hasUniversalAPIContract_v7 = winrt::Windows::Foundation::Metadata::ApiInformation::IsApiContractPresent(L"Windows.Foundation.UniversalApiContract", 7); + } + return hasUniversalAPIContract_v7.value(); + } + void ReactWebView::WriteWebViewNavigationEventArg(winrt::WebView const& sender, winrt::IJSValueWriter const& eventDataWriter) { auto tag = this->GetValue(winrt::FrameworkElement::TagProperty()).as().GetInt64(); WriteProperty(eventDataWriter, L"canGoBack", sender.CanGoBack()); WriteProperty(eventDataWriter, L"canGoForward", sender.CanGoForward()); - WriteProperty(eventDataWriter, L"loading", !sender.IsLoaded()); + if (Is17763OrHigher()) { + WriteProperty(eventDataWriter, L"loading", !sender.IsLoaded()); + } WriteProperty(eventDataWriter, L"target", tag); WriteProperty(eventDataWriter, L"title", sender.DocumentTitle()); if (auto uri = sender.Source()) { diff --git a/windows/WebViewBridgeComponent/WebViewBridgeComponent.vcxproj b/windows/WebViewBridgeComponent/WebViewBridgeComponent.vcxproj index 2100364..68a6b77 100644 --- a/windows/WebViewBridgeComponent/WebViewBridgeComponent.vcxproj +++ b/windows/WebViewBridgeComponent/WebViewBridgeComponent.vcxproj @@ -95,6 +95,7 @@ _WINRT_DLL;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions) $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) + stdcpp17 Console