RKWebBridge

简介

如果需要 接入 智能家居 等一些 H5 页面,需要接入 RKWebBridge,否则 H5 页面无法正常使用。

快速接入

SDK 提供了 快速接入方法 供开发者集成,请安装下面 Demo 代码使用即可,具体 Native UI View 组件可根据APP业务需求进行实现。

Swift:


class WebviewViewController: UIViewController {

    var webbridge: RKWebBridge?
    var webView: WKWebView?

    override func viewDidLoad() {
        super.viewDidLoad()

        self.webbridge = RKWebBridge.injectWebBridge(to: self.webView!)
        self.webbridge?.setPhoneDelegate(delegate: self)
        self.webbridge?.setAppDelegate(delegate: self)
        self.webbridge?.setViewDelegate(delegate: self)
    }

}

extension WebviewViewController: RKBridgeModulePhoneDelegate {
    // 用户手指按下
    func touchDown() {
    }

    // 用户手指移动
    func touchMove() {
    }

    // 用户手指抬起
    func touchUp() {
    }
}

extension WebviewViewController: RKBridgeModuleAppDelegate  {

    // 关闭当前页面
    func close() {
    }

    // 在当前的 webview ,打开Url
    func open(title: String, urlStr: String) {
    }

    // 在一个新的 ViewController 中打开Url
    func openNewWebView(title: String, urlStr: String) {
    }

    // 使用外部浏览器 打开Url
    func openExternal(urlStr: String) {
    }

    // 返回到指定module的page页面
    func goBack(module: String, page: String) {
    }

}

extension WebviewViewController: RKBridgeModuleViewDelegate  {

    // 显示 Toast
    func showToast(message: String) {
    }

    // 显示 加载中UI组件
    func showLoading(message: String) {
    }

    // 隐藏 加载中UI组件    
    func hideLoading() {
    }

    // 设置 标题栏标题
    func setNavigationBarTitle(title: String) {
    }

    // 设置 标题栏风格
    func setNavigationBarStyle(style: String) {
    }

    // 设置 标题栏 右侧按钮
    func setNavigationBarRight(button: [String : Any]) {
    }

    // 设置 标题栏 右侧按钮小红点状态
    func setNavigationBarRightDotState(state: Bool) {
    }

    // 显示 异常UI组件
    func errorView(state: Bool, retryUrl: String) {
    }

}

Objc:

@interface WebviewViewController () <RKBridgeModuleViewDelegate, RKBridgeModuleAppDelegate, RKBridgeModulePhoneDelegate>

@property(nonatomic, strong) RKWebBridge * rkWebBridge ;

- (void)viewDidLoad {
    self.rkWebBridge = [RKWebBridge injectWebBridgeTo:self.webView];

    [self.rkWebBridge setPhoneDelegateWithDelegate:self];
    [self.rkWebBridge setAppDelegateWithDelegate:self];
    [self.rkWebBridge setViewDelegateWithDelegate:self];
}

// 用户手指按下
- (void)touchDown {
}

// 用户手指移动
- (void)touchMove {
}

// 用户手指抬起
- (void)touchUp {
}

// 关闭当前页面
- (void)close {
}

// 在当前的 webview ,打开Url
- (void)openWithTitle:(NSString * _Nonnull)title urlStr:(NSString * _Nonnull)urlStr {
}

// 在一个新的 ViewController 中打开Url
- (void)openNewWebViewWithTitle:(NSString * _Nonnull)title urlStr:(NSString * _Nonnull)urlStr {
}

// 使用外部浏览器 打开Url
- (void)openExternalWithUrlStr:(NSString * _Nonnull)urlStr {
}

// 返回到指定module的page页面
- (void)goBackWithModule:(NSString * _Nonnull)module_ page:(NSString * _Nonnull)page;

// 显示 Toast
- (void)showToastWithMessage:(NSString * _Nonnull)message {
}

// 显示 加载中UI组件
- (void)showLoadingWithMessage:(NSString * _Nonnull)message {
}

// 隐藏 加载中UI组件 
- (void)hideLoading {
}

// 设置 标题栏标题
- (void)setNavigationBarTitleWithTitle:(NSString * _Nonnull)title {
}

// 设置 标题栏风格
- (void)setNavigationBarStyleWithStyle:(NSString * _Nonnull)style {
}

// 设置 标题栏 右侧按钮
- (void)setNavigationBarRightWithButton:(NSDictionary<NSString *, id> * _Nonnull)button {
}

// 设置 标题栏 右侧按钮小红点状态
- (void)setNavigationBarRightDotStateWithState:(BOOL)state {
}

// 显示 异常UI组件
- (void)errorViewWithState:(BOOL)state retryUrl:(NSString * _Nonnull)retryUrl {
}

(1)标题栏风格: 请标题栏风格 根据业务需求设置。

(2)标题栏 右侧 RightButton 参数解释:

名称 类型 必须? 描述
icon String 按钮图片
text String 按钮标题
loadSelf Bool 默认false: 是否在当前页面打开
targetUrl String close: 关闭当前页面</br> \: 打开这个url

results matching ""

    No results matching ""