123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // Copyright (c) Microsoft Corporation. All rights reserved.
- // Licensed under the MIT License.
-
- #pragma once
- #include "winrt/Microsoft.ReactNative.h"
- #include "NativeModules.h"
- #include "ReactWebView.h"
-
- namespace winrt::ReactNativeWebView::implementation {
-
- enum class WebViewCommands : int32_t { GoForward = 0, GoBack = 1, Reload = 2, StopLoading = 3, InjectJavaScript = 4 };
-
- class ReactWebViewManager : public winrt::implements<
- ReactWebViewManager,
- winrt::Microsoft::ReactNative::IViewManager,
- winrt::Microsoft::ReactNative::IViewManagerWithReactContext,
- winrt::Microsoft::ReactNative::IViewManagerWithNativeProperties,
- winrt::Microsoft::ReactNative::IViewManagerWithExportedEventTypeConstants,
- winrt::Microsoft::ReactNative::IViewManagerWithCommands> {
- public:
- ReactWebViewManager();
- // IViewManager
- winrt::hstring Name() noexcept;
- winrt::Windows::UI::Xaml::FrameworkElement CreateView() noexcept;
-
- // IViewManagerWithReactContext
- winrt::Microsoft::ReactNative::IReactContext ReactContext() noexcept;
- void ReactContext(winrt::Microsoft::ReactNative::IReactContext reactContext) noexcept;
-
- // IViewManagerWithNativeProperties
- winrt::Windows::Foundation::Collections::
- IMapView<winrt::hstring, winrt::Microsoft::ReactNative::ViewManagerPropertyType>
- NativeProps() noexcept;
-
- void UpdateProperties(
- winrt::Windows::UI::Xaml::FrameworkElement const& view,
- winrt::Microsoft::ReactNative::IJSValueReader const& propertyMapReader) noexcept;
-
- // IViewManagerWithExportedEventTypeConstants
- winrt::Microsoft::ReactNative::ConstantProviderDelegate ExportedCustomBubblingEventTypeConstants() noexcept;
- winrt::Microsoft::ReactNative::ConstantProviderDelegate ExportedCustomDirectEventTypeConstants() noexcept;
-
- // IViewManagerWithCommands
- winrt::Windows::Foundation::Collections::IMapView<winrt::hstring, int64_t> Commands() noexcept;
-
- void DispatchCommand(
- winrt::Windows::UI::Xaml::FrameworkElement const& view,
- int64_t commandId,
- winrt::Microsoft::ReactNative::IJSValueReader const& commandArgsReader) noexcept;
-
- private:
- winrt::ReactNativeWebView::ReactWebView m_reactWebView{ nullptr };
- winrt::Microsoft::ReactNative::IReactContext m_reactContext{ nullptr };
-
- };
- } // namespace winrt::ReactWebView::implementation
|