YHExplorerViewController.h 2.9 KB
//
//  YHExplorerViewController.h
//  YohoExplorerDemo
//
//  Created by gaoqiang xu on 2/27/15.
//  Copyright (c) 2015 gaoqiang xu. All rights reserved.
//

#import "CDVViewController.h"
#import "CDVCommandDelegateImpl.h"
#import "CDVCommandQueue.h"
#import "CDVYHInterfaceDelegate.h"
#import "YHNative.h"
#import "YHURLCache.h"
#import "YHLinkDefaultParser.h"

@protocol YHExplorerDelegate;

@protocol YHExplorer <NSObject>
/**
 *  加载url
 *
 *  @param url 地址
 */
- (void)loadWebUrl:(NSString *)url;
/**
 *  加载html内容
 *
 *  @param html 网页内容
 */
- (void)loadHTMLString:(NSString *)html;
/**
 *  设置进度条的颜色
 *
 *  @param color 颜色
 */
- (void)setProgressBarColor:(UIColor *)color;
@optional
/**
 *  注册一个链接解析器
 *
 *  @param parser 链接解析器
 */
- (void)registerLinkParser:(id <YHLinkParserDelegate>)parser;

/**
 *  禁用链接解析
 *
 *  @param parser 链接解析器
 */
- (void)unRegisterLinkParser:(id <YHLinkParserDelegate>)parser;

/**
 *  移除滚动条
 */
- (void)removeProgress;
@end

@interface YHExplorerViewController : CDVViewController
<CDVYHInterfaceDelegate, YHExplorer>

/**
 *  存放一些自动跳转的scheme,目前有itms-apps, itms-appss
 可以往里面补充
 */
@property (strong, nonatomic) NSMutableArray *autoSchemes;
// 进度条功能的启动/停用
@property (nonatomic) BOOL progressBarEnabled;
// 本地机能列表
@property (readonly, strong, nonatomic) NSMutableArray *nativeAbilities;
// 自动处理默认的scheme跳转,如itms-apps
@property (nonatomic) BOOL automaticallySchemeHandle;
// 网页的title
@property (readonly, copy, nonatomic) NSString *pageTitle;
//滚动条所在的navibar
@property (weak, nonatomic) UINavigationBar *currentNaviBar;
// 网页交互代理(包含UIWebView的代理)
@property (weak, nonatomic) id <YHExplorerDelegate> delegate;
/**
 *  使用一个url初始化
 *
 *  @param url 地址
 *
 *  @return instance
 */
- (instancetype)initWithUrl:(NSString *)url;

- (instancetype)initWithCurrentNaviBar:(UINavigationBar *)currentNaviBar;
@end

@interface YHExplorerCommandDelegate : CDVCommandDelegateImpl
@end

@interface YHExplorerCommandQueue : CDVCommandQueue
@end

#pragma mark - Protocol:YHExplorerDelegate
@protocol YHExplorerDelegate <UIWebViewDelegate>
@optional
/**
 *  获取页面的title
 *
 *  @param title 页面的title
 */
- (void)pageTitleUpdated:(NSString *)title;
/**
 *  webView探测到含有指定参数的回调
 *
 *  @param params 参数
 */
- (void)explorerDidDetectParameters:(NSDictionary *)params;

#pragma mark Native
/**
 *  本地机能是否可以被触发,默认是YES
 *
 *  @param native YHNative对象
 */
- (BOOL)nativeActionShouldBegin:(YHNative *)native;
/**
 *  本地机能调用结束
 *
 *  @param native YHNative对象
 *  @param success 执行结果
 */
- (void)nativeAction:(YHNative *)native didEndWithResult:(BOOL)success userInfo:(NSDictionary *)userInfo;

@required
@end