| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /*
- * Copyright (C) 2014-2019 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
- #import <WebKit/WKFoundation.h>
- #import <Foundation/Foundation.h>
- NS_ASSUME_NONNULL_BEGIN
- @class WKNavigation;
- @class WKNavigationAction;
- @class WKNavigationResponse;
- @class WKWebView;
- @class WKWebpagePreferences;
- /*! @enum WKNavigationActionPolicy
- @abstract The policy to pass back to the decision handler from the
- webView:decidePolicyForNavigationAction:decisionHandler: method.
- @constant WKNavigationActionPolicyCancel Cancel the navigation.
- @constant WKNavigationActionPolicyAllow Allow the navigation to continue.
- */
- typedef NS_ENUM(NSInteger, WKNavigationActionPolicy) {
- WKNavigationActionPolicyCancel,
- WKNavigationActionPolicyAllow,
- } API_AVAILABLE(macos(10.10), ios(8.0));
- /*! @enum WKNavigationResponsePolicy
- @abstract The policy to pass back to the decision handler from the webView:decidePolicyForNavigationResponse:decisionHandler: method.
- @constant WKNavigationResponsePolicyCancel Cancel the navigation.
- @constant WKNavigationResponsePolicyAllow Allow the navigation to continue.
- */
- typedef NS_ENUM(NSInteger, WKNavigationResponsePolicy) {
- WKNavigationResponsePolicyCancel,
- WKNavigationResponsePolicyAllow,
- } API_AVAILABLE(macos(10.10), ios(8.0));
- /*! A class conforming to the WKNavigationDelegate protocol can provide
- methods for tracking progress for main frame navigations and for deciding
- policy for main frame and subframe navigations.
- */
- @protocol WKNavigationDelegate <NSObject>
- @optional
- /*! @abstract Decides whether to allow or cancel a navigation.
- @param webView The web view invoking the delegate method.
- @param navigationAction Descriptive information about the action
- triggering the navigation request.
- @param decisionHandler The decision handler to call to allow or cancel the
- navigation. The argument is one of the constants of the enumerated type WKNavigationActionPolicy.
- @discussion If you do not implement this method, the web view will load the request or, if appropriate, forward it to another application.
- */
- - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;
- /*! @abstract Decides whether to allow or cancel a navigation.
- @param webView The web view invoking the delegate method.
- @param navigationAction Descriptive information about the action
- triggering the navigation request.
- @param preferences The default set of webpage preferences. This may be
- changed by setting defaultWebpagePreferences on WKWebViewConfiguration.
- @param decisionHandler The policy decision handler to call to allow or cancel
- the navigation. The arguments are one of the constants of the enumerated type
- WKNavigationActionPolicy, as well as an instance of WKWebpagePreferences.
- @discussion If you implement this method,
- -webView:decidePolicyForNavigationAction:decisionHandler: will not be called.
- */
- - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler API_AVAILABLE(macos(10.15), ios(13.0));
- /*! @abstract Decides whether to allow or cancel a navigation after its
- response is known.
- @param webView The web view invoking the delegate method.
- @param navigationResponse Descriptive information about the navigation
- response.
- @param decisionHandler The decision handler to call to allow or cancel the
- navigation. The argument is one of the constants of the enumerated type WKNavigationResponsePolicy.
- @discussion If you do not implement this method, the web view will allow the response, if the web view can show it.
- */
- - (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler;
- /*! @abstract Invoked when a main frame navigation starts.
- @param webView The web view invoking the delegate method.
- @param navigation The navigation.
- */
- - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation;
- /*! @abstract Invoked when a server redirect is received for the main
- frame.
- @param webView The web view invoking the delegate method.
- @param navigation The navigation.
- */
- - (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(null_unspecified WKNavigation *)navigation;
- /*! @abstract Invoked when an error occurs while starting to load data for
- the main frame.
- @param webView The web view invoking the delegate method.
- @param navigation The navigation.
- @param error The error that occurred.
- */
- - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error;
- /*! @abstract Invoked when content starts arriving for the main frame.
- @param webView The web view invoking the delegate method.
- @param navigation The navigation.
- */
- - (void)webView:(WKWebView *)webView didCommitNavigation:(null_unspecified WKNavigation *)navigation;
- /*! @abstract Invoked when a main frame navigation completes.
- @param webView The web view invoking the delegate method.
- @param navigation The navigation.
- */
- - (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation;
- /*! @abstract Invoked when an error occurs during a committed main frame
- navigation.
- @param webView The web view invoking the delegate method.
- @param navigation The navigation.
- @param error The error that occurred.
- */
- - (void)webView:(WKWebView *)webView didFailNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error;
- /*! @abstract Invoked when the web view needs to respond to an authentication challenge.
- @param webView The web view that received the authentication challenge.
- @param challenge The authentication challenge.
- @param completionHandler The completion handler you must invoke to respond to the challenge. The
- disposition argument is one of the constants of the enumerated type
- NSURLSessionAuthChallengeDisposition. When disposition is NSURLSessionAuthChallengeUseCredential,
- the credential argument is the credential to use, or nil to indicate continuing without a
- credential.
- @discussion If you do not implement this method, the web view will respond to the authentication challenge with the NSURLSessionAuthChallengeRejectProtectionSpace disposition.
- */
- - (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler;
- /*! @abstract Invoked when the web view's web content process is terminated.
- @param webView The web view whose underlying web content process was terminated.
- */
- - (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView API_AVAILABLE(macos(10.11), ios(9.0));
- @end
- NS_ASSUME_NONNULL_END
|