Giter VIP home page Giter VIP logo

jsbridge's Issues

混淆规则

请问,这个库需要混淆吗?混淆规则是什么样的呢?

Android 4.4 以下没法用啊

你好,Android 4.4以下,设置iframe的src, 但是webviewclient 的shouldOverrideUrlLoading不会触发啊,这样整个框架就没法用了。请问有什么解决办法吗

org.json.JSONException: Unterminated object at character

org.json.JSONException: Unterminated object at character 51 of [{"responseId":"JAVA_CB_4_2099","responseData":"{"isCanBuy":false,"tempOrderVO":{"orderStoreViewList":[{"goodsAmount":158,"baseGoodsAmount":258,"oriGoodsAmount":158,"goodsViewList":[{"id":287001,"goodsPrice":14,"basePrice":24,"storeId":1000},{"id":287015,"goodsPrice":16,"basePrice":26,"storeId":1000}],"storeId":"1000","orderAmount":158,"baseOrderAmount":258,"oriOrderAmount":158,"discountAmount":100}],"allOrderAmount":"158.00","allBaseOrderAmount":"258.00","allOriOrderAmount":"158.00","discountAmount":"100.00"}}"}]

在解析的时候出错。
Android4.4以上版本正常,4.4一下版本出错。

java方法调用不到js方法

I/Web Console: {"data":"eeoioieoirpwipeiepwoie","handlerName":"functionInJs","callbackId":"JAVA_CB_1_4158"} at null:1
I/Web Console: WebViewJavascriptBridge: WARNING: javascript handler threw. at null:1
这是什么原因?

Please provide Licence or NOTICE file

Hi, I would like to use your open source code, please provide Licence or NOTICE file in your source code, so that I can include it when I distribute the binary.

Thanks

使用WebViewJavascriptBridge.js

你好,我是新人,想问一下我的html怎么加载WebViewJavascriptBridge.js文件呢?WebViewJavascriptBridge.js在android端。即我的app需要加载任意html页面,那么html中怎么识别WebViewJavascriptBridge呢?谢谢哈~

不能进行CallBackFunction的序列化

我在这里想做一下intent传递,到另一个activity中,去执行 function.onCallBack("aa")回调,所有我要做CallBackFunction的序列化,但是我把所有没有进行序列化的类都进行了序列化,但是还是不行能帮忙看一下吗

`public class ChangeViewRegisterhandle extends BaseRegisterHandle implements Serializable {
/打开一个新模态/
webview.registerHandler("present", new BridgeHandler() {
@OverRide
public void handler(String data, CallBackFunction function) {
try {
String url = JsonUtils.getJSonString(data, "url");
Intent intent = new Intent(getHfaxFragment().getActivity(), HfaxActivity.class);
intent.putExtra("url", url);
if (function != null) {
// 这里进行CallBackFunction的序列化
callBack = new HfaxSerializableCallBack();
callBack.setCallBack(function);
Bundle bundle = new Bundle();
bundle.putSerializable(HfaxConstant.HFAX_PRESENTCALLBACK, callBack);
intent.putExtras(bundle);
}
getHfaxFragment().getActivity().startActivity(intent);

        } catch (JSONException e) {
            e.printStackTrace();
            LogUtils.v("tag", getClass().getSimpleName() + " json解析失败……");
        }
    }
});     

}
// 这是序列化类
public class HfaxSerializableCallBack implements Serializable {
private static final long serialVersionUID = 2L;

private CallBackFunction callBackFunction;

public CallBackFunction getCallBack() {
    return callBackFunction;
}

public void setCallBack(CallBackFunction callBackFunction) {
    this.callBackFunction = callBackFunction;
}

}
`

W/System.err: java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.hfax.hfaxsdk.tools.HfaxSerializableCallBack)
W/System.err: at android.os.Parcel.writeSerializable(Parcel.java:1468)
W/System.err: at android.os.Parcel.writeValue(Parcel.java:1416)
W/System.err: at android.os.Parcel.writeArrayMapInternal(Parcel.java:686)
W/System.err: at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330)
W/System.err: at android.os.Bundle.writeToParcel(Bundle.java:1079)
W/System.err: at android.os.Parcel.writeBundle(Parcel.java:711)
W/System.err: at android.content.Intent.writeToParcel(Intent.java:7797)
W/System.err: at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2642)
W/System.err: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1509)
W/System.err: at android.app.Activity.startActivityForResult(Activity.java:3993)
W/System.err: at android.app.Activity.startActivityForResult(Activity.java:3954)
W/System.err: at android.app.Activity.startActivity(Activity.java:4277)
W/System.err: at android.app.Activity.startActivity(Activity.java:4245)
W/System.err: at com.hfax.hfaxsdk.register.ChangeViewRegisterhandle$1.handler(ChangeViewRegisterhandle.java:60)
W/System.err: at com.hfax.hfaxsdk.jsbridge.BridgeWebView$1.onCallBack(BridgeWebView.java:191)
W/System.err: at com.hfax.hfaxsdk.jsbridge.BridgeWebView.handlerReturnData(BridgeWebView.java:85)
W/System.err: at com.hfax.hfaxsdk.jsbridge.BridgeWebViewClient.shouldOverrideUrlLoading(BridgeWebViewClient.java:30)
W/System.err: at com.android.webview.chromium.WebViewContentsClientAdapter.shouldOverrideUrlLoading(WebViewContentsClientAdapter.java:327)
W/System.err: at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading(AwContentsClientBridge.java:266)
W/System.err: at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
W/System.err: at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:37)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err: at android.os.Looper.loop(Looper.java:148)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5458)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
W/System.err: Caused by: java.io.NotSerializableException: com.hfax.hfaxsdk.jsbridge.BridgeWebView$1$1
W/System.err: at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344)
W/System.err: at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
W/System.err: at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
W/System.err: at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
W/System.err: at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:959)
W/System.err: at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360)
W/System.err: at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1054)
W/System.err: at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384)
W/System.err: at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
W/System.err: at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
W/System.err: at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
W/System.err: at android.os.Parcel.writeSerializable(Parcel.java:1463)
W/System.err: ... 26 more

webview.loadDataWithBaseURL方式加载页面,页面中有url链接时导致老页面刷新为新页面问题

我的问题是这样的.
Activity1里面用webview.loadDataWithBaseURL方式加载页面,然后改页面里有另外的url.
我们的需求是点击内部url时跳转到Activity2,该Activity2里面也有一个BridgeWebView, BridgeWebView.loadUrl(url);的方式将改url加载出来.

问题是:
当Activity2加载url时,Activity1里面的内容也被重新加载为Activity1里的url的内容.
求大神指教该问题怎么破呢?期待回复,提前感谢!

Callback function

Hi I am trying to store the callback function as a object and wanted to call onCallback() later when event occurs. When i am calling callback.OnCallback(), it is not hitting the JS callback method. Can you please help me with this. Thanks in advance.

示例运行后,点击按钮“发送消息给Native”和“调用Native方法”均无反映

你好,我将你的这个示例在手机上安装后,有点问题:

  1. 点击按钮“发送消息给Native”和“调用Native方法”均无反映

//send message to native
window.WebViewJavascriptBridge.send(
data
, function(responseData) {
document.getElementById("show").innerHTML = "repsonseData from java, data = " + responseData
}
);

//call native method
window.WebViewJavascriptBridge.callHandler(
'submitFromWeb'
, {'param': str1}
, function(responseData) {
document.getElementById("show").innerHTML = "send get responseData from java, data = " + responseData
}
);
这两个方法,java都无法收到调用。

  1. 点击Java调用Web按钮,界面上可以显示出data from java: = data from android,但java无法收到回调。

bridge.registerHandler("functionInJs", function(data, responseCallback) {
document.getElementById("show").innerHTML = ("data from Java: = " + data);
var responseData = "Javascript Says Right back aka!";
responseCallback(responseData); //这里的回调,java收不到
});

手机安卓版本4.3

JS调用Android端没有的方法会抛空指针异常

UncaughtException in Thread main
java.lang.NullPointerException
at com.github.lzyzsd.jsbridge.BridgeWebView$1.onCallBack(BridgeWebView.java:228)
at com.github.lzyzsd.jsbridge.BridgeWebView.handlerReturnData(BridgeWebView.java:75)
at com.github.lzyzsd.jsbridge.BridgeWebView.access$000(BridgeWebView.java:23)
at com.github.lzyzsd.jsbridge.BridgeWebView$BridgeWebViewClient.shouldOverrideUrlLoading(BridgeWebView.java:91)
at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:354)
at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:488)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5493)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1225)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1041)
at dalvik.system.NativeStart.main(Native Method)

请问下面这个崩溃是JsBridge这个库造成的吗?

10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: Activity com.talkweb.cloudcampus.jsbridge.WebActivity has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@429edcd8 that was originally bound here
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: android.app.ServiceConnectionLeaked: Activity com.talkweb.cloudcampus.jsbridge.WebActivity has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@429edcd8 that was originally bound here
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.LoadedApk$ServiceDispatcher.(LoadedApk.java:979)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:873)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.ContextImpl.bindServiceAsUser(ContextImpl.java:1818)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.ContextImpl.bindService(ContextImpl.java:1806)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.content.ContextWrapper.bindService(ContextWrapper.java:503)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.speech.tts.TextToSpeech.connectToEngine(TextToSpeech.java:687)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.speech.tts.TextToSpeech.initTts(TextToSpeech.java:656)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.speech.tts.TextToSpeech.(TextToSpeech.java:609)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.webkit.AccessibilityInjector$TextToSpeechWrapper.(AccessibilityInjector.java:696)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.webkit.AccessibilityInjector.addTtsApis(AccessibilityInjector.java:492)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.webkit.AccessibilityInjector.addAccessibilityApisIfNecessary(AccessibilityInjector.java:173)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.webkit.AccessibilityInjector.updateJavaScriptEnabled(AccessibilityInjector.java:427)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.webkit.WebViewClassic.updateJavaScriptEnabled(WebViewClassic.java:3523)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.webkit.WebSettingsClassic.setJavaScriptEnabled(WebSettingsClassic.java:1572)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at com.talkweb.cloudcampus.jsbridge.BridgeWebView.init(BridgeWebView.java:62)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at com.talkweb.cloudcampus.jsbridge.BridgeWebView.(BridgeWebView.java:36)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at com.talkweb.cloudcampus.view.ProgressWebView.(ProgressWebView.java:18)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at java.lang.reflect.Constructor.constructNative(Native Method)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.view.LayoutInflater.createView(LayoutInflater.java:600)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at com.talkweb.cloudcampus.ui.base.BaseActivity.onCreate(BaseActivity.java:64)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at com.talkweb.cloudcampus.ui.base.TitleActivity.onCreate(TitleActivity.java:25)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.Activity.performCreate(Activity.java:5369)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.ActivityThread.access$700(ActivityThread.java:165)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1326)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.os.Handler.dispatchMessage(Handler.java:99)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.os.Looper.loop(Looper.java:137)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at android.app.ActivityThread.main(ActivityThread.java:5450)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at java.lang.reflect.Method.invokeNative(Native Method)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at java.lang.reflect.Method.invoke(Method.java:525)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
10-13 10:03:54.830 18254-18254/com.talkweb.cloudcampus E/ActivityThread: at dalvik.system.NativeStart.main(Native Method)

Not supported for JS Promise

When JavaScript uses Promise framework to call methods, this library fails to give callback to the method. Please let me know if we can do something to support Promise calls.

Ex:

return new Promise(function (resolve, reject) {
function onResultOK(data) {
console.log('onResultOK');
resolve(data);
}

                       function onResultError(error) {
                       console.log('onResultError: %s', error);
                       reject(error);
                       }
                       console.log('this call is  a promise');
                       Android.nativeMethod(cons, onResultOK, onResultError); // Calling native android method.

                       });

同步异步问题

大神们好,我想请问一下,其中的回调函数可以做成“异步”的吗?不然卡在页面上,效果不好啊。感谢!具体怎做呢?开个线程吗?

iframe 无法创建

华为荣耀6,5.11系统
在demo的MainActivity中
onCreate的webView = (BridgeWebView) findViewById(R.id.webView);后加上
webView.loadUrl("http://www.baidu.com");

js的_createQueueReadyIframe方法将无法创建iframe

汉字会乱码或显示出错

bridge.callHandler('test',{"content":"乐乐乐乐"}, function(response) {
alert(response);
}

类似这种, 在android里,取到content时,汉字不正确了,

Release new build with Callback working?

The latest build - 1.0.4 does not have callback working. Trying to get the latest jar from Jitpack with the latest commit gives a no artifact error. Can a new version with working Callback be released?

java调用js 不执行方法

这里,在 js 中定义

WebViewJavascriptBridge.registerHandler("getMedicineConfigs", function (data, responseCallback) { console.log("====== data ======" + data); getMedicineConfigs(data); });

当 java中 call

webView.callHandler("getMedicineConfigs", JSON.toJSONString(response.getMedicineConfigs()), null);

按照 下面js中定义的

function _handleMessageFromNative(messageJSON) { console.log(messageJSON); if (receiveMessageQueue) { receiveMessageQueue.push(messageJSON); } else { _dispatchMessageFromNative(messageJSON); } }

只会加入到queue,而不会 dispatch

汉字传输

@lzyzsd 发送汉字给java回报数据解析错误?

Send data is a JSON string to js while happen error

when I call the Method

webView.callHandler(jsHandlerName, data, new CallBackFunction() {
@OverRide
public void onCallBack(String dataFromJS) { } });

and data is a json String as :

{"misp_rate": 0.0, "miss_rate": 0.0, "reading_difficulty": 3, "sentence": "What's your name?", "sentscore": 7.729825044290912, "hypsent": "", "redu_rate": 100.0, "score": 0.0, "frame_stats": [{"end": 0.0, "fluency": "ok", "start": 0.0, "score": 0.0, "word": "WHAT'S", "class": "missing"}, {"end": 0.0, "fluency": "ok", "start": 0.0, "score": 0.0, "word": "YOUR", "class": "missing"}, {"end": 0.0, "fluency": "ok", "start": 0.0, "score": 0.0, "word": "NAME", "class": "missing"}], "result": [{"end": 0.0, "fluency": "ok", "start": 0.0, "score": 0.0, "word": "WHAT'S", "class": "missing"}, {"end": 0.0, "fluency": "ok", "start": 0.0, "score": 0.0, "word": "YOUR", "class": "missing"}, {"end": 0.0, "fluency": "ok", "start": 0.0, "score": 0.0, "word": "NAME", "class": "missing"}], "overall_score_grade": [1.0, 0.16716503179825531, 0.04837733590220021, 0.005763443891519606, 0.0009540585770522334, 6.666328219118981e-20, 0.0, 0.0, 0.0], "frames": 0.0, "vocal_score": 47.2583396248}

will happen a err:07-06 11:22:17.740: I/chromium(12174): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected identifier", source: (1)

Can not use this lib in gradle

I added compile 'com.github.lzyzsd.jsbridge:library:1.0.0' into gradle.build ,but there is a error:

Error:Failed to find: com.github.lzyzsd.jsbridge:library:1.0.0

how Can I resolve this problem

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.