JSBridge-Android:高效、安全的Hybrid开发利器
JSBridge-AndroidA solution for safe and fast interaction between js and native,it's minimum support API 14;项目地址:https://gitcode.com/gh_mirrors/js/JSBridge-Android
在移动应用开发范畴,Hybrid开发模式因其灵活性和高效性而受到广泛欢迎。然而,实现JavaScript与原生代码之间的无缝交互不停是开发者面临的挑战。今天,我们向您推荐一款开源项目——JSBridge-Android,它为Android开发者提供了一个高效、安全的办理方案。
项目介绍
JSBridge-Android是一个基于WebView的JavaScript与Android原生代码交互库。该项目源自lzyzsd的JsBridge,但由于原项目存在调用丢失和效率题目,JSBridge-Android对其进行了重构和优化。通过直接使用WebView的addJavaScriptInterface方法,JSBridge-Android实现了目前最高效的系统级交互方式。
项目技术分析
技术亮点:
- 高效交互:不再使用URL Scheme拦截方式,而是直接采用WebView的addJavaScriptInterface方法,确保了交互的高效性。
- 兼容性:支持API Level 14及以上,满足了广泛的用户需求。
- 安全性:使用onJsPrompt方法进行交互,并移除了低版本的三个危险漏洞,确保了交互的安全性。
- 灵活扩展:支持外部WebView扩展,如X5 WebView和UC内核,提供了更多的定制选项。
技术实现:
- 交互方式:通过addJavaScriptInterface方法直接与WebView进行交互,克制了URL Scheme拦截的低效题目。
- 安全步伐:使用onJsPrompt方法进行交互,并移除了低版本的三个危险漏洞,确保了交互的安全性。
- 版本支持:支持API Level 14及以上,满足了广泛的用户需求。
- 扩展性:提供了外部WebView扩展方案,如X5 WebView和UC内核,方便开发者根据需求进行定制。
项目及技术应用场景
JSBridge-Android适用于以了局景:
- Hybrid应用开发:在混淆应用中,实现JavaScript与Android原生代码的高效、安全交互。
- Web与原生交互:在须要Web页面与原生功能进行交互的应用中,如电商、社交、金融等。
- WebView扩展:在须要使用第三方WebView内核的应用中,如X5 WebView和UC内核。
项目特点
紧张特点:
- 高效性:通过直接使用WebView的addJavaScriptInterface方法,实现了最高效的系统级交互方式。
- 安全性:使用onJsPrompt方法进行交互,并移除了低版本的三个危险漏洞,确保了交互的安全性。
- 兼容性:支持API Level 14及以上,满足了广泛的用户需求。
- 灵活扩展:支持外部WebView扩展,如X5 WebView和UC内核,提供了更多的定制选项。
使用步调:
- 导入SDK:
- 在项目的根目次build.gradle中的repositories添加:
- repositories {
- mavenCentral()
- }
复制代码 - 在模块的build.gradle(Module)的dependencies添加:
- dependencies {
- implementation 'com.smallbuer:jsbridge:1.0.7'
- }
复制代码
- 新增原生功能module:
- 继承BridgeHandler并实现handler方法,比方:
- public class ToastBridgeHandler extends BridgeHandler {
- @Override
- public void handler(Context context, String data, CallBackFunction function) {
- Toast.makeText(context, "data:" + data, Toast.LENGTH_SHORT).show();
- function.onCallBack("{"status":"0","msg":"吐司成功"}");
- }
- }
复制代码
- 原生功能注册:
- 对全部的原生功能进行全局注册,分为两种方式,推荐方式二:
- //style 2
- var handlerMap = HashMap<String, BridgeHandler>();
- handlerMap[HandlerName.HANDLER_NAME_TOAST] = ToastBridgeHandler();
- handlerMap[HandlerName.HANDLER_NAME_PHOTO] = PhotoBridgeHandler();
- handlerMap[HandlerName.HANDLER_NAME_REQUEST] = RequestBridgeHandler();
- Bridge.INSTANCE.registerHandler(handlerMap);
复制代码
- 使用方法:
JSBridge-AndroidA solution for safe and fast interaction between js and native,it's minimum support API 14;项目地址:https://gitcode.com/gh_mirrors/js/JSBridge-Android
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |