你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 一行代碼搞定web調用本地代碼

一行代碼搞定web調用本地代碼

編輯:IOS開發基礎

    首先,附加上封裝庫的源碼地址 FMBridgeJSOC源碼


    先簡單介紹一下這個庫吧:這個庫的所有方法都注冊到了html的window控件上,這裡有個原因不得不說一下,就是在web頁面調用中,如果我們參考網絡上的多數通過實現JSExport方法來注冊到window.app的方式來處理,那麼就會存在方法還未定義就被調用的情況。具體來講就是網頁中點擊鏈接切換時跳轉到某個網頁,在加載時取獲取參數,這是可能存在app的初始化都還未完成我們就開始調用了。而對於一個window窗口的生命周期這裡就不講了。


    對於 FMBridgeJSOC 這個庫采用了pod支持的方式。我們只需在通過創建的用pod管理的工程中的Podfile中加入

pod 'FMBridgeJSOC'

然後執行

pod update

即可導入。

好吧,引入封裝庫了,接下來就介紹一下使用。

首先,定義一個controller類,在累中引入文件

UIWebView+JSBridge.h

好了接下來我們定義在累中定義一個方法吧

這裡,我就用定義一個下面的方法吧:

- (NSString *(^)(BOOL isLocal)) hello:(NSString *)hello welcome:(NSString *)welcome;

看出來了吧,支持block操作哦。好了,不吹了,

下面是方法的具體實現

- (NSString *(^)(BOOL isLocal)) hello:(NSString *)hello welcome:(NSString *)welcome {

    return ^NSString *(BOOL isLocal){

        return [NSString stringWithFormat:@"%@",isLocal ? welcome : hello];

    };

}


現在我們要做什麼呢?

很簡單就是在viewdidLoad中定義一個webview。


我在這裡采用了屬性的方式定義了一個webview

- (UIWebView *)webView {    

    if (_webView == nil) {    

        _webView = [[UIWebView alloc] initWithFrame:self.view.bounds];    

        [self.view addSubview:_webView];    

    }    

    return _webView;    

}    


然後調用

[self.webView registerJSCallSelector:@selector(hello:welcome:) withTarget:self];


這樣,我們在基於這個webView展示的h5頁面中就可以隨意調用一個以hellowelcome()為名的方法了。


[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"]]]];


這個就是我們的具體調用。


至於具體的h5調用d實現裡面又個小示例,這裡多說,更多參考其他資料吧。


各位看客,如果覺得可以的話可以star或fork一下以示支持哦。



  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved