FMWebViewJavascriptBridge
FMWebViewJavascriptBridge inspired by WebViewJavascripBridge and react native
Install / Use
/learn @carlSQ/FMWebViewJavascriptBridgeREADME
#FMWebViewJavascriptBridge
简介
FMWebViewJavascriptBridge inspired by react native 是一个轻量级的JavascriptBridge,只支持WKWebView iOS 8.0之后,与android原生调用保持一致。

how to Use
自定义 JavascriptInterface
- 自定义 JavascriptInterface 类
- 在暴露的接口前添加FM_EXPORT_METHOD宏
- 支持的参数可以是 nil NSNull NSString NSNumber NSDictionary NSArray NSDate char int double BOOL
- 同时支持返回值给Javascrip的回调, 回调的类型FMCallBack,支持参数同上
@implementation JavascriptInterface
FM_EXPORT_METHOD(@selector(push:))
- (void)push:(NSUInteger)one {
[self.viewController.navigationController
pushViewController:[WKViewController new]
animated:YES];
NSLog(@"test push%ld", (unsigned long)one);
}
FM_EXPORT_METHOD(@selector(pop:))
- (void)pop:(NSString *)testArray {
[self.viewController.navigationController popViewControllerAnimated:YES];
NSLog(@"pop array %@", testArray);
}
FM_EXPORT_METHOD(@selector(setNavTitle:response:))
- (void)setNavTitle:(NSDictionary *)userInfo response:(FMCallBack)callBack {
self.viewController.title = userInfo[@"name"];
callBack(@{@"name":@"carlSQ",@"age":@"26"});
}
添加接口给javascript调用
用 FMWKWebViewBridge 类中的接口addJavascriptInterface 添加接口道javascrip层
_webViewBridge = [FMWKWebViewBridge wkwebViewBridge:self.webView];
[_webViewBridge addJavascriptInterface:[JavascriptInterface new] withName:@"JavascripInterface"];
js层调用
与android原生调用保持一致,addJavascriptInterface 会在js层注入一个对象,名字是addJavascriptInterface 中设置的名字
<script>
JavascriptInterface.setNavTitle({"name" : "carl", age:"18"},function(responseData) {
setNavTitle.innerHTML = "name:"+responseData.name +" age:" + responseData.age;
})
</script>
#Usage
pod 'FMWebViewJavascriptBridge', '~> 3.0.0'
Author
carl Shen
License
FMWebViewJavascriptBridge is available under the MIT license. See the LICENSE file for more info.
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
