±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn,±¾ÎÄÖ÷Òª»ùÓÚÊÖ»úÌÔ±¦µÄÒ»´Î¼Ü¹¹Ì½Ë÷£ºÊÖ»úÌÔ±¦¿Í»§¶Ë¼Ü¹¹Ì½Ë÷ʵ¼ù£¬»ùÓÚ´ËÎĽøÐеÄһЩѧϰºÍ̽Ë÷. |
|
ǰÑÔ
µ±Ò»¸öAppÖ»Óм¸¸öÈË¿ª·¢µÄʱºò£¬ºÜÈÝÒ׾ͻáÔÚÒ»¸öµ¥ÏîÄ¿Öпª·¢¡£µ«µ±App¿ª·¢ÈËÊýÔ½À´Ô½¶à£¬ÉõÖÁ¼¸°ÙÈË£¬Ê®¼¸¸ö²»Í¬BU¶¼ÔÚе÷¿ª·¢Í¬Ò»¸öAppµÄʱºò£¬¾Í±ØÐë¶Ô¼Ü¹¹½øÐÐ×é¼þ»¯£¬²ÅÄÜ·½±ã¿ª·¢¡£
×é¼þ»¯µÄÄ¿µÄ
Ê×ÏÈ£¬µÚÒ»¸öÎÊÌ⣬ΪºÎÐèÒª×é¼þ»¯£¿
Èç¹ûÒÀ¾ÉÊǵ¥¹¤³ÌÏîÄ¿£¬»òÕßÊǶ๤³ÌÒýÈëͬһ¸öÏîÄ¿µÄ¿ª·¢£¬»áÓÐÒÔϵÄÎÊÌ⣺
1. ÑÏÖØµÄ´úÂëñîºÏ
±ÈÈçaÄ£¿éÒªÌø×ªbÄ£¿éµÄÒ³Ãæ£¬¾ÍÒªÔÚaÄ£¿éµÄ´úÂëÖÐñîºÏbÄ£¿éµÄÒ³Ãæ´úÂë
2. Ðͬ¹¤×÷À§ÄÑ
¿ª·¢¹¤³ÌÖÐÐèҪȥ±àÒë±ðµÄÄ£¿éµÄ´úÂ룬»¹ÈÝÒ׳öÏÖ³åÍ»ÎÊÌ⣬Òý·¢±ðµÄÎÊÌâ
3. ²âÊÔЧÂʵÍÏÂ
²»½ö²âÊÔijһ¸ö¹¦ÄÜ¿ÉÄÜÐèÒªñîºÏ±ðµÄÄ£¿é´úÂ룬×ö»Ø¹é²âÊÔµÄʱºòÒµÎñҲ̫¶àʱ·ÖÂé·³
4. ·¢²¼²»¹»Áé»î
³öÏÖÎÊÌⶨλÂé·³£¬ÏßÉÏÈȸüÐÂÒ²À§ÄÑ
ΪÁ˽â¾öÕâЩÎÊÌ⣬ËùÒÔÐèÒªÖØ¹¹´úÂ룬´ïµ½×é¼þ»¯µÄÄ¿µÄ¡£
×é¼þ»¯µÄ·½Ê½
ÊÖ»úÌÔ±¦×é¼þ»¯Á½´óºËÐÄ£º
1. ·Ö¶øÖÎÖ®
2. һЩ½Ô×é¼þ
ÄÃÒ»ÕÅpptÀïµÄͼ£º

ÊÖ»úÌÔ±¦×é¼þ»¯
¿ÉÒÔ¿´µ½£¬ÊÖ»úÌÔ±¦½«ÒµÎñ¶¼½øÐÐϸÁ£¶ÈµÄ²ð·Ö£¬²ð·Ö³öµÄÿһ¸ö²¿·Ö¶¼×÷Ϊһ¸ö×é¼þ¡£Ã¿¸ö×é¼þ¿ÉÒÔµ¥¶À½øÐвâÊÔÓëµ÷ÊÔ£¬²¢ÇÒÈ·±£Á˵¥Ò»µÄ¹¦ÄÜÐÔ£¬·½±ãÔÚÐÂÒµÎñ½ÓÈëµÄʱºò£¬¿ÉÒÔ°´ÕÕÐèÇóÑ¡ÔñÏàÓ¦µÄ×é¼þÀ´½øÐÐÌí¼Ó¡£

¶ÔÓÚbundleÈçºÎ×éºÏ£¬ÕâÀïÓõÄÊÇCocoaPods¡£
CocoaPodsÊÇÒ»¸öÖøÃûµÄiOSÀà¿â¹ÜÀí¹¤¾ß¡£ÕâÀï¾Í²»Ïêϸ½éÉÜÈçºÎ°²×°ÓëÓÃCocoaPodsÁË£¬¸ÐÐËȤµÄ¿ÉÒÔ×Ô¼ºÈ¥CocoaPods
GuideÈ¥¿´Ò»Ï¡£
ͨ¹ýCocoaPods¿ÉÒÔÊ®·Ö·½±ãµÄÑ¡ÔñÐèÒªµÄbundle°ü½øÈëÏîÄ¿£¬²¢ÇÒ×î¹Ø¼üµÄÊÇ¿ÉÒÔ¿ØÖÆbundle°üµÄ°æ±¾ºÅ£¬Ñ¡ÔñÎȶ¨µÄ¾É°æ±¾»òÕßй¦ÄܵÄÀϰ汾£¬±ÜÃâÁËÐͬ¿ª·¢µÄʱºò£¬¿ÉÄܳöÏÖµÄÍⲿÎÊÌ⣬·½±ã¿ª·¢Óë²âÊÔ¡£
×é¼þ»¯ºËÐIJã
´ÓÇ°Ãæ¡°ÊÖ»úÌÔ±¦×é¼þ»¯¡±µÄͼ¿ÉÒÔ¿´³ö£¬×é¼þ»¯µÄºËÐIJãÆäʵÊÇÈÝÆ÷²ã¡£
ÈÝÆ÷²ãÖ÷Òª·ÖΪÁ½´ó¿é
1. Ó¦ÓÃÉúÃüÖÜÆÚ
2. ×ÜÏß
¶ø×ÜÏߣ¬¾ÍÊǺËÐÄ×é¼þÖ®¼äµÄ½âñîµÄ¹Ø¼ü¡£
×ÜÏßÖ÷Òª·ÖΪÈý¿é£º
1. URL
2. ·þÎñ
3. ÏûÏ¢
URL
URLÓ¦¸ÃÊÇÕû¸ö×ÜÏß´«ÊäµÄºËÐÄ¡£
Ä£¿éͨ¹ýURLÌø×ªµÄµÄ·½Ê½£¬À´½øÐÐÄ£¿éÖ®¼äµÄÏûÏ¢´«µÝ¡£URLµÄÓô¦ÊÇ×î¶àµÄ£¬±ÈÈç»ñÈ¡ÏàÓ¦¶ÔÏó£¬Ìø×ªÏàÓ¦Ò³Ãæ£¬»òÕß·¢ÆðÇëÇ󣬶¼¿ÉÒÔʹÓÃURLÀ´½øÐС£
ÕâÀïÄÃÄ¢¹½½ÖURLÌø×ªµÄdemo£ºMGJRouter£¬À´½øÐоÙÀý×Ó¡£
MGJRouterÖ÷Òª¾ÍÊÇͨ¹ý¸÷¸öÄ£¿é×¢²áÏàÓ¦µÄURLÌø×ªblock£¬½¨Á¢ÆðÒ»²ãURLÓëblockµÄÓ³Éä¹ØÏµ£¬È»ºóµ÷Ó÷½Í¨¹ýURLÈ¥·ÃÎÊblock£¬»ñµÃ½á¹û¡£
ͨ¹ýURLµÄ·½Ê½£¬µ÷Ó÷½²»ÐèҪȥÒÀÀµÆäËûÄ£¿é´úÂ룬ֻÐèÒªÖ±½Óµ÷Ó㬻òÕß»ñÈ¡ÏàÓ¦µÄ½á¹û½øÐд¦Àí¡£
±ÈÈç³£¼ûµÄÒ³ÃæÌø×ªÎÊÌ⣬ͨ¹ýURL·ÓÉ£¬¾Í¿ÉÒÔÖ±½ÓÌø×ªµ½ÏàÓ¦µÄÒ³Ãæ¡£
Ê×ÏÈÊÇ×¢²áÏàÓ¦µÄURLÄÚÈÝ£¬ÕâÀïÊÇÏêÇéÒ³µÄÄÚÈÝ¡£
[MGJRouter registerURLPattern:@"mgj://detail?id=:id"
toHandler:^(NSDictionary *routerParameters) {
NSNumber *id = routerParameters[@"id"];
// create view controller with id
// push view controller
}]; |
È»ºóµ÷Ó÷½Ö»ÐèÒªµ÷ÓÃ
[MGJRouter openURL:@"mgj://detail?id=404"]; |
¾Í¿ÉÒÔ´ò¿ªÏàÓ¦µÄ½çÃæ¡£
²»½ö¿ÉÒÔͨ¹ýopenURLµÄ·½Ê½È¥´ò¿ªÒ»¸öURL£¬Ò²¿ÉÒÔͨ¹ýobjectForUrlȥͨ¹ýURL»ñȡһ¸ö¶ÔÏó£¬È»ºó½øÐвÙ×÷¡£
·þÎñ
·þÎñÓÃÀ´ÃÖ²¹URLÎÞ·¨´¦Àí»òÕßÄÑÒÔ´¦ÀíµÄ¹¦ÄÜ¡£
·þÎñµÄ×÷ÓÃÖ÷ÒªÌåÏÖÔÚһЩ×é¼þÖ®¼äµÄ¹¦Äܵ÷Ó㬻á±ÈURL¸ü¼ÑͨÓᣱÈÈçµÇ½£¬¹ºÎï³µµÈÄ£¿éµÄ³£Óù¦ÄÜ¡£
·þÎñÖ÷Ҫͨ¹ýModuleManager£¬È¥×¢²áProtocol->ClassµÄ¹ØÏµ£¬»ñµÃÏàÓ¦µÄ¶ÔÏ󣬽øÐÐProtocolµÄ·½·¨µ÷Óá£
±ÈÈçµÇ½×é¼þ¿ÉÒÔÌṩÕâÑùµÄÒ»¸öProtocol
@protocol User
<NSObject>
+ (NSString *)getUserName;
@end |
¿ÉÒÔ¿´µ½Í¨¹ýÐÒé¿ÉÒÔÖ±½ÓÖ¸¶¨·µ»ØµÄÊý¾ÝÀàÐÍ¡£È»ºóÔڵǽ×é¼þÄÚÔÙн¨¸öÀàʵÏÖÕâ¸öÐÒ飬¼ÙÉèÕâ¸öÀàÃûΪUserImp£¬½ÓמͿÉÒÔ°ÑËüÓëÐÒ鹨ÁªÆðÀ´
[ModuleManager
registerClass:UserImp forProtocol:@protocol(User)]; |
¶ÔÓÚʹÓ÷½À´Ëµ£¬ÒªÄõ½Õâ¸ö UserImp£¬ÐèÒªµ÷ÓÃ
Class cls = [ModuleManager
classForProtocol:@protocol(User)]; |
Äõ½Ö®ºóÔÙµ÷ÓÃ
id<User>
userComponent = [[cls alloc] init];
NSString *userName = [userComponent getUserName]; |
¾Í¿ÉÒÔ»ñµÃÓû§µÄÓû§ÃûÁË¡£
ÏûÏ¢
ÏûÏ¢¾ÍÊdz£¼ûµÄNSNotificationÏà¹ØµÄÏûϢת·¢»úÖÆ£¬ÔÚÕâÀï×öÒ»¸öÏûÏ¢µÄͳһ¹ÜÀíºÍ·Ö·¢¸ø¸÷¸öÄ£¿é£¬¸÷¸öÄ£¿é×Ô¼ºÈ¥´¦ÀíÏìÓ¦µÄÏûÏ¢¡£
×ÜÏß×ܽá
×ÜÏßµÄÖ÷ҪĿµÄ¾ÍÊÇ×é¼þÓë×é¼þÖ®¼äµÄÏûÏ¢´«ÊäµÄ½âñî¡£
URLÊÇ×ÜÏßÖÐ×îÖ÷ÒªµÄʹÓó¡¾°£¬°üÀ¨Ò³Ãæµ÷ÓÃÓë·¢ÆðÇëÇóµÈ¹¦ÄÜ¡£
·þÎñÊÇ×é¼þ¼äµÄµ÷Ó÷½Ê½¡£ÐèÒª·þÎñÌṩ·½ÌṩÓëά»¤Îȶ¨µÄ·þÎñ½Ó¿Ú¡£
ÏûÏ¢ÊÇÔÚ×ÜÏßÖнøÐÐͳһ¹ÜÀíÓë·Ö·¢¡£
¶ÔÓÚURLΪºËÐĵÄ×ÜÏß»úÖÆÓÐÒÔϺô¦£º
1. ƽ̨ͳһ
iOS,Androidͨ¹ýͬһ¸öURL×ÜÏßÔÚºǫ́½øÐйÜÀíÓëÅäÖá£
2. ×Ô¶¯½µ¼¶
Àϰ汾½âÎö²»ÁËURL£¬×ßÀϵÄÂß¼ÒÀ¾É¿ÉÓá£Ð°汾¿ÉÒÔ½âÎöURL£¬×ßеÄÂß¼¡£
3. ÖÐÐÄ·Ö·¢
ÒµÎñ·½·Ö±ð×¢²á×Ô¼ºµÄURLÀ¹½Ø¹æÔò£¬ÅäÖÃÔÚ×Ô¼ºµÄÄ£¿éÖС£Í¨¹ý×ÜÏßÀ´ÖÐÐÄ·Ö·¢ÏìÓ¦Äܹ»ÏìÓ¦µÄÄ£¿é½øÐд¦Àí¡£
½áÊøÓï
±¾ÎÄÖ÷Òª»¹ÊǸù¾ÝÊÖ»úÌÔ±¦¿Í»§¶Ë¼Ü¹¹Ì½Ë÷ʵ¼ùºÍÊÓÆµ£¬½è¼øÁËÄ¢¹½½Ö App µÄ×é¼þ»¯Ö®Â·Ò»Ð©¾ßÌåµÄʵÏÖ˼·£¬×Ô¼ºÕûÀíÒ»ÏÂ˼·µÄ×ܽáºÍѧϰ¡£ |