Giter VIP home page Giter VIP logo

webviewjavascriptbridge's People

Contributors

jesse01 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webviewjavascriptbridge's Issues

android4.4以下执行methodCallJavascript.invoke(browserFrame, script);报错:Fatal signal 11 (SIGSEGV) at 0x00000a84 (code=1)

你好,感谢开发这个project。我在4.4以下使用,程序进入stringByEvaluatingJavaScriptFromString方法后,在methodCallJavascript.invoke(browserFrame, script)处报错。请帮忙解决一下。多谢。

下面是我的WebViewClient
class MyWebViewClient extends WVJBWebViewClient {
public MyWebViewClient(WebView webView) {

        // support js send
        super(webView, new WVJBWebViewClient.WVJBHandler() {

            @Override
            public void request(Object data, WVJBResponseCallback callback) {

// Toast.makeText(getActivity(), "ObjC Received message from JS:" + data, Toast.LENGTH_LONG).show();
callback.callback("Response for message from ObjC!");
Intent intent = new Intent(getActivity(), NewsDetailActivity.class);
intent.putExtra("url",data.toString());
startActivity(intent);
}
});

关于网页传递带"\n"到android与ios端不同点

hi jesse01:
我使用该开源库,遇到一个问题,就是我网页端传递“你好\n**”给android与ios端,ios端是可以正常接收到,但是android端只能获取到"你好n**",请帮忙指点一下,谢谢!

存在多个致命bug

  1. 字符串转义bug。如 #4#3#2 ,本质上的原因是通过js bridge传递数据解析时转义有误导致。 此bug会导致验证问题,传递数据不能正常解析,导致不可用,属于Fatal bug 。要彻底解决这个问题就不应该去转义,因为在传递数据格式未限定的情况下,只要转义,正常的数据字符串中都有可能匹配到转义规则(而这些字符串本身是不需要转义), 如果非要转义,就必须得限定jsbridge数据传递的格式,比如必须以json形式传递,这样才可以应用固定的转义规则解析。

  2. javascript调用原生方法会偶现失败。在测试过程中发现,失败的时机往往是webview调用 onPageFinished 前后,具体的表现是js调用native方法时 shouldOverrideUrlLoading没有被触发,所以端上没有去刷新js调用的message queue. 至于为什么没有就调用shouldOverrideUrlLoading,这是因为js和webview通信机智有问题,通过改变iframe src属性的这种方式并不能保证shouldOverrideUrlLoading每次都会被调用。

  3. webview 注入js时机太晚,导致在页面未加载成功之前的js调用原生方法无效; 正确的做法是应该在webview注入成功后刷新一下 window.WVJBCallbacks (请参照ios版的初始化代码)。

  4. 与ios版不完全兼容,比如没有 disableJavscriptAlertBoxSafetyTimeout这个api.

在发现这些问题后,比如第一个问题,已经有多个isuue, 而作者近三年都没有更新过。 于是我不得不重复造了一个轮子,修复了上面所述众多bug, 并与ios版本 marcuswestin/WebViewJavascriptBridge 完全兼容, 在此我贴出地址,欢迎大家来讨论: https://github.com/wendux/WebViewJavascriptBridge

存在中文乱码问题

bridge.callHandler('showGoodsSearchResults', {'keyword': '感冒'}, function(response) {
})

'感冒' 会在Native会解析成u611Fu5192
,html端使用的utf-8编码
,这个问题您怎么看???

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.