private string WebErrorStatusToString(WEBVIEW2_WEB_ERROR_STATUS status)
        {
            switch (status)
            {
            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_UNKNOWN:
                return("UNKNOWN");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT:
                return("CERTIFICATE_COMMON_NAME_IS_INCORRECT");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED:
                return("CERTIFICATE_EXPIRE");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS:
                return("CLIENT_CERTIFICATE_CONTAINS_ERRORS");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED:
                return("CERTIFICATE_REVOKED");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID:
                return("CERTIFICATE_IS_INVALID");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE:
                return("SERVER_UNREACHABLE");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_TIMEOUT:
                return("TIMEOUT");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE:
                return("ERROR_HTTP_INVALID_SERVER_RESPONSE");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED:
                return("CONNECTION_ABORTED");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET:
                return("STATUS_CONNECTION_RESET");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED:
                return("DISCONNECTED");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT:
                return("CANNOT_CONNECT");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED:
                return("HOST_NAME_NOT_RESOLVED");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED:
                return("OPERATION_CANCELED");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED:
                return("REDIRECT_FAILED");

            case WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR:
                return("UNEXPECTED_ERROR");
            }

            return("ERROR");
        }
Example #2
0
        private void WebView2NavigationCompleted(object sender, NavigationCompletedEventArgs e)
        {
            bool isSuccess = e.IsSuccess;
            WEBVIEW2_WEB_ERROR_STATUS webErrorStatus = e.WebErrorStatus;

            string message =
                "{ \"kind\": \"event\", \"name\": \"NavigationCompleted\", \"args\": {";

            message +=
                "\"isSuccess\": " + BoolToString(isSuccess) + ", " +
                "\"webErrorStatus\": " + EncodeQuote(WebErrorStatusToString(webErrorStatus)) + " " +
                "}" +
                WebViewPropertiesToJsonString(_eventSourceWebView2) +
                "}";
            PostEventMessage(message);
        }
        /// <summary>
        /// Register a handler for the NavigationCompleted event.
        /// Check whether the navigation succeeded, and if not, do something.
        /// Also update the Back, Forward, and Cancel buttons.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void WebView2NavigationCompleted(object sender, Wrapper.NavigationCompletedEventArgs e)
        {
            if (!e.IsSuccess)
            {
                WEBVIEW2_WEB_ERROR_STATUS webErrorStatus = e.WebErrorStatus;
                if (webErrorStatus == WEBVIEW2_WEB_ERROR_STATUS.WEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED)
                {
                    // Do something here if you want to handle a specific error case.
                    // In most cases this isn't necessary, because the WebView will
                    // display its own error page automatically.
                }
            }

            _toolbar.CanGoBack    = _webView2.CanGoBack;
            _toolbar.CanGoForward = _webView2.CanGoForward;
            _toolbar.CanCancel    = false;
        }