/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ #import "WXModuleProtocol.h" /** * This enum is used to define the position of navbar item. */ typedef NS_ENUM(NSInteger, WXNavigationItemPosition) { WXNavigationItemPositionCenter = 0x00, WXNavigationItemPositionRight, WXNavigationItemPositionLeft, WXNavigationItemPositionMore }; /** * @abstract The callback after executing navigator operations. The code has some status such as 'WX_SUCCESS'、'WX_FAILED' etc. The responseData * contains some useful info you can handle. */ typedef void (^WXNavigationResultBlock)(NSString *code, NSDictionary * responseData); @protocol WXNavigationProtocol /** * @abstract Returns the navigation controller. * * @param container The target controller. */ - (id)navigationControllerOfContainer:(UIViewController *)container; /** * @abstract Sets the navigation bar hidden. * * @param hidden If YES, the navigation bar is hidden. * * @param animated Specify YES to animate the transition or NO if you do not want the transition to be animated. * * @param container The navigation controller. * */ - (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated withContainer:(UIViewController *)container; /** * @abstract Sets the background color of navigation bar. * * @param backgroundColor The background color of navigation bar. * * @param container The target controller. * */ - (void)setNavigationBackgroundColor:(UIColor *)backgroundColor withContainer:(UIViewController *)container; /** * @abstract Sets the item in navigation bar. * * @param param The data which is passed to the implementation of the protocol. * * @param position The value indicates the position of item. * * @param block A block called once the action is completed. * * @param container The target controller. * */ - (void)setNavigationItemWithParam:(NSDictionary *)param position:(WXNavigationItemPosition)position completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container; /** * @abstract Clears the item in navigation bar. * * @param param The data which is passed to the implementation of the protocol. * * @param position The value indicates the position of item. * * @param block A block called once the action is completed. * * @param container The target controller. * */ - (void)clearNavigationItemWithParam:(NSDictionary *)param position:(WXNavigationItemPosition)position completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container; /** * @abstract Pushes a view controller onto the receiver’s stack. * * @param param The data which is passed to the implementation of the protocol. * * @param block A block called once the action is completed. * * @param container The target controller. * */ - (void)pushViewControllerWithParam:(NSDictionary *)param completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container; /** * @abstract Pops the top view controller from the navigation stack. * * @param param The data which is passed to the implementation of the protocol. * * @param block A block called once the action is completed. * * @param container The target controller. * */ - (void)popViewControllerWithParam:(NSDictionary *)param completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container; @optional /** * @abstract open the resource at the specified URL which supports many common schemes, including the http, https, tel and mailto schemes. * * @param param The data which is passed to the implementation of the protocol. * * @param success A block called once the action is completed successfully. * * @param failure A block called once the action failed to be completed. * * @param container The target controller. * */ - (void)open:(NSDictionary *)param success:(WXModuleCallback)success failure:(WXModuleCallback)failure withContainer:(UIViewController *)container; /** * @abstract close the current weex page * * @param param The data which is passed to the implementation of the protocol. * * @param success A block called once the action is completed successfully. * * @param failure A block called once the action failed to be completed. * * @param container The target controller. * */ - (void)close:(NSDictionary *)param success:(WXModuleCallback)success failure:(WXModuleCallback)failure withContainer:(UIViewController *)container; @end