{"id":21637875,"url":"https://github.com/bbc6bae9/javascript-bridge","last_synced_at":"2026-03-11T05:31:34.390Z","repository":{"id":57676192,"uuid":"486833006","full_name":"BBC6BAE9/javascript-bridge","owner":"BBC6BAE9","description":"About An iOS bridge for sending messages between Obj-C and JavaScript in JSContext / WebViews. ","archived":false,"fork":false,"pushed_at":"2022-05-02T16:12:17.000Z","size":20364,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-25T04:07:21.169Z","etag":null,"topics":["ios","javascript","javascript-applications","jsbridge","web","webview"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BBC6BAE9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-29T04:08:04.000Z","updated_at":"2024-11-08T12:44:10.000Z","dependencies_parsed_at":"2022-09-03T00:12:21.444Z","dependency_job_id":null,"html_url":"https://github.com/BBC6BAE9/javascript-bridge","commit_stats":null,"previous_names":["bbc6bae9/javascript-bridge"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BBC6BAE9%2Fjavascript-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BBC6BAE9%2Fjavascript-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BBC6BAE9%2Fjavascript-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BBC6BAE9%2Fjavascript-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BBC6BAE9","download_url":"https://codeload.github.com/BBC6BAE9/javascript-bridge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226270831,"owners_count":17598079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ios","javascript","javascript-applications","jsbridge","web","webview"],"created_at":"2024-11-25T04:07:24.552Z","updated_at":"2026-03-11T05:31:34.347Z","avatar_url":"https://github.com/BBC6BAE9.png","language":"Objective-C","readme":"# HWJavaScriptBridge\n\n[![Version](https://img.shields.io/cocoapods/v/HWJavaScriptBridge.svg?style=flat)](https://cocoapods.org/pods/HWJavaScriptBridge)\n[![License](https://img.shields.io/cocoapods/l/HWJavaScriptBridge.svg?style=flat)](https://cocoapods.org/pods/HWJavaScriptBridge)\n[![Platform](https://img.shields.io/cocoapods/p/HWJavaScriptBridge.svg?style=flat)](https://cocoapods.org/pods/HWJavaScriptBridge)\n\n## Example\n\nTo run the example project, clone the repo, and run `pod install` from the Example directory first.\n\n![bridge](./bridge.png)\n\n## Requirements\n\niOS 6.0+\n\n## Installation\n\nHWJavaScriptBridge is available through [CocoaPods](https://cocoapods.org). To install\nit, simply add the following line to your Podfile:\n\n```ruby\npod 'HWJavaScriptBridge'\n```\n\n## Usage\n\n### For  WKWebView\n```objective-c\n HWWebViewJavaScriptBridge *bridge = [[HWWebViewJavaScriptBridge alloc] initWithWebView:self.webView];\n    self.bridge = bridge;\n    [bridge registerHandler:@\"invoke\" handler:^(id  _Nonnull data, HWJBResponseCallback  _Nonnull responseCallback) {\n        NSDictionary *clientData = @{\n            @\"code\":@(0),\n            @\"msg\":@\"success\",\n            @\"data\":@{@\"company\":@\"tencent\"}\n        };\n        responseCallback(clientData);\n    }];\n```\n```objective-c\n [self.bridge callHandler:@\"dispatchEvent\" data:@{@\"func\": @\"preRender\"} responseCallback:^(id  _Nonnull responseData) {\n        NSLog(@\"[preRender] callback =%@\", responseData);\n    }];\n```\n### For  JSContext\n\n```objective-c\n    JSVirtualMachine *vm = [[JSVirtualMachine alloc] init];\n    JSContext *ctx = [[JSContext alloc] initWithVirtualMachine:vm];\n    self.ctx  = ctx;\n    HWJSContextJavaScriptBridge *bridge = [[HWJSContextJavaScriptBridge alloc] initWithJSContext:ctx];\n    self.bridge = bridge;\n    \n    // 监听JS调用的postMessage方法\n    [bridge registerHandler:@\"invoke\" handler:^(id  _Nonnull data, HWJBResponseCallback  _Nonnull responseCallback) {\n        NSDictionary *clientData = @{\n            @\"code\":@(0),\n            @\"msg\":@\"success\",\n            @\"data\":@{@\"company\":@\"tencent\"}\n        };\n        responseCallback(clientData);\n    }];\n```\n\n```objective-c\n // 客户端主动调用JS，并得到JS的回应\n    NSDictionary *data = @{\n        @\"func\":@\"preRender\",\n        @\"params\":@{\n            @\"url\":@\"https://m.film.qq.com\"\n        }\n    };\n    [self.bridge callHandler:@\"dispatchEvent\" data:data responseCallback:^(id responseData) {\n        NSLog(@\"[preRender] recieve callback data=%@\", responseData);\n    }];\n```\n\n\n\n## Author\n\nbbc6bae9, bbc6bae9@gmail.com\n\n## License\n\nHWJavaScriptBridge is available under the MIT license. See the LICENSE file for more info.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbc6bae9%2Fjavascript-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbc6bae9%2Fjavascript-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbc6bae9%2Fjavascript-bridge/lists"}