WXNavigationProtocol.h
5.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
/*
* 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 <WXModuleProtocol>
/**
* @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