smallbuer / jsbridge-android Goto Github PK
View Code? Open in Web Editor NEWA solution for safe and fast interaction between js and native,it's minimum support API 14;
License: Apache License 2.0
A solution for safe and fast interaction between js and native,it's minimum support API 14;
License: Apache License 2.0
我已经重新设计了新的交互库,10分钟就能完成接入,也许可以帮助你.
Java:
https://github.com/SDBridge/SDBridgeJava
Kotlin:
https://github.com/SDBridge/SDBridgeKotlin
代码里调用了eval() 现在很多domain都拒绝使用eval了,这个绕不过去,建议替换
我在对单个BridgeWebView对象重复操作的时候,老页面建的桥无法清除
页面上图片没加载完,用jsbridge实现的链接跳转都点不了
如何从源码编译呢?
iOS使用的bridge名称是WKWebViewJavascriptBridge,想和他们兼容一下,能不能把js串里面的所有WebViewJavascriptBridge都改成WKWebViewJavascriptBridge?然后在html里边调用window.WKWebViewJavascriptBridge
rt
看是否需要调整一下,还是我需要自己去把引号去掉,或者用JSON方式反序列化成String
我想在Activity中单独添加个Handler,源码中初始化BridgeTiny的时候已经添加了所有的Handler, 想在Activity中单独添加该怎么做呢(weview和Activity在用一个页面的需求)
BridgeWebViewClient我有代码需要在WebViewClient操作,但是这个方法未public,wo只能把代码考出来重写
我也在北京,跟随大佬
看源码 好像是 gson解析的类被混淆了
/**
* 分发message 必须在主线程才分发成功
*
* @param message Message
*/
public void dispatchMessage(Object message) {
String messageJson = new Gson().toJson(message);
//escape special characters for json string 为json字符串转义特殊字符
messageJson = messageJson.replaceAll("(\\\\)([^utrn])", "\\\\\\\\$1$2");
messageJson = messageJson.replaceAll("(?<=[^\\\\])(\")", "\\\\\"");
messageJson = messageJson.replaceAll("(?<=[^\\\\])(\')", "\\\\\'");
messageJson = messageJson.replaceAll("%7B", URLEncoder.encode("%7B"));
messageJson = messageJson.replaceAll("%7D", URLEncoder.encode("%7D"));
messageJson = messageJson.replaceAll("%22", URLEncoder.encode("%22"));
String javascriptCommand = String.format(BridgeUtil.JS_HANDLE_MESSAGE_FROM_JAVA, messageJson);
BridgeLog.d(TAG,"javascriptCommand->"+javascriptCommand);
// 必须要找主线程才会将数据传递出去 --- 划重点
if (Thread.currentThread() == Looper.getMainLooper().getThread()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT&&javascriptCommand.length()>=BridgeUtil.URL_MAX_CHARACTER_NUM) {
mWebView.evaluateJavascript(javascriptCommand,null);
}else {
mWebView.loadUrl(javascriptCommand);
}
}
}
我把网页地址换成一个网络地址(eg:https://blog.csdn.net/sk719887916/article/details/47189607),他就没法展示网页
implementation 'com.smallbuer:jsbridge:1.0.2'
ERROR: Failed to resolve: jsbridge
Affected Modules: app
WebViewJavascriptBridge.js这个文件还要加在项目里面吗
webview本地的接口,功能是请求网络数据,将响应body通过 js 脚本返回,遇到该问题
Jcenter停止维护,有迁移计划吗?
org/gradle/api/internal/java/usagecontext/LazyConfigurationUsageContext
这个会让微信h5支付异常,会让微信的回调redirect_url无法重定向。
bridgeTiny.webViewLoadJs((IWebView) webView);
问题:
X5WebView打开Vue项目, 部分方法需要在资源未加载完成前调用,在onPageFinished注入时无法获取到桥,因此修改了的注入位置-->onPageStarted|onLoadResource|shouldOverrideUrlLoading|onPageFinished
这样处理后可以调用到桥,但是出现新的问题。部分手机依然出现无法获取到桥 或者 有时可以有时不可以的现象 ,即使页面资源加载完后也无法调用到桥,有时切换网络重新加载页面就可以调用到。不知道是哪里的问题???
请问js调用Android端代码后的CallBackFunction回调,是只能用一次的吗?返回一次结果之后再调用CallBackFunction就收不到结果了
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.