Framework文件
- FireflyJSBridge.framework
配置鏈接
- 需要(yào / yāo)添加
FireflyJSBridge.framework
的(de)鏈接,以(yǐ)及對應的(de)依賴鏈接;詳細參見接入iOS
頭文件引用
簡單導入
#import <FireflyJSBridge/FireflyJSBridge.h>
容器類型
我們提供兩種容器
- FireflyJSUIWebViewController ,内部是(shì)UIWebView, 支持離線包接入
- FireflyJSWKWebViewController ,内部使用WKWebView
使用示例
#import <FireflyJSBridge/FireflyJSBridge.h>
FireflyJSUIWebViewController *vc = [[FireflyJSUIWebViewController alloc] init]
//不(bù)加載命名空間爲(wéi / wèi)ff的(de)jsbridge實現 YES不(bù)加載 / NO加載
vc.notLoadffAbiFactory = YES;
擴展Web和(hé / huò)Native交換接口
當集成了(le/liǎo)jssdk的(de)web頁面,在(zài)調用方法時(shí),需要(yào / yāo)增加命名空間的(de)前綴,FireflyJSBridge會根據命名空間,将需要(yào / yāo)響應的(de)方法派發到(dào)響應對象,完成前端到(dào)native的(de)調用,響應對象完成後将結果信息以(yǐ)同步或者異步的(de)方式回調給web頁面,完成一(yī / yì /yí)次web端和(hé / huò)native段的(de)通信。
例如:前端js 調用:firefly.getSystemInfo()
時(shí),sdk會調用到(dào)注冊miniapp命名空間的(de)實例對象中的(de)方法中
nativeObj的(de)實例方法
//nativeObj的(de)實例方法
- (void)getSystemInfo:(FireflyJSCallNativeArg *)arg completionHandler:(FireflyJSCallback)completionHandler
{
NSDictionary * dict = @{系統信息字典};
completionHandler([dict ff_toJSONString],YES);
}
#import <FireflyJSBridge/FireflyJSBridge.h>
FireflyJSUIWebViewController *vc = [[FireflyJSUIWebViewController alloc] init]
//不(bù)加載命名空間爲(wéi / wèi)ff的(de)jsbridge實現 YES不(bù)加載 / NO加載
vc.notLoadffAbiFactory = YES;
//注冊命名空間爲(wéi / wèi)firefly的(de)Native能力對象nativeObj
[vc.getFireflyWebView addJavascriptObject:nativeObj nameSpace:@"firefly"];