xuewuli / Tiny.Scatter

Scatter compatible eos injection library
31 stars 16 forks source link

"signEOS" 签名后回调没有反应 #2

Closed HallCheng closed 5 years ago

HallCheng commented 5 years ago

"signEOS" 签名后回调onSignEOSSuccessful()没有任何响应

xuewuli commented 5 years ago

改了改ReadMe,看是否对你有帮助.

HallCheng commented 5 years ago

按照这个格式回调 onSignEOSSuccessful('1.5445e+12' ,' {"signatures":["SIGK1......."]}'),依然没有报错,也没有其他反应,假如是签名error,应该会有提示的吧?

HallCheng commented 5 years ago

“id” 只的js调用传入的id吧?

xuewuli commented 5 years ago

id是js调用传人的,是个number. 需原样回传.实现上是通过id作为map的key来匹配执行callback,最终resolve eosjs的promise的. 你这个现象看起来很像callback没找到 代码参考BrigeAPI.js https://github.com/xuewuli/Tiny.Scatter/blob/0d883ce9836e949b756f4296be110ea681c9ae21/src/BrigeAPI.js#L51

HallCheng commented 5 years ago

确实是你说的这个原因: 这句话加个Number() 就可以了 var callback = BrigeAPI.callbacks.get(Number(id)); 回调成功,多谢

xuewuli commented 5 years ago

不客气,不过你调用onSignEOSSuccessful为什么要传个字符串过来呢?

HLSO6 commented 5 years ago

我想请问一下,这包代码是否是实现了WKWebView对scatter的兼容?这个需要什么环境啊?能在windows下调试吗

xuewuli commented 5 years ago

我想请问一下,这包代码是否是实现了WKWebView对scatter的兼容?这个需要什么环境啊?能在windows下调试吗

不包含,也不是100%兼容scatter,只是对通过scatter初始化的eos.js进行了支持 写这个代码时是以学习目的为主的

iOS下WKWebView注入十分简单,参考readme的说明,自行实现并不麻烦. Android下WebView注入略显麻烦,最好找个封装好的库

HLSO6 commented 5 years ago

好的,谢谢

HallCheng commented 5 years ago

不客气,不过你调用onSignEOSSuccessful为什么要传个字符串过来呢?

android callback() 到 js 的参数默认的字符类型

xuewuli commented 5 years ago

是三方库的默认行为吗? 如果是自己调用 webView.evaluateJavascript("onSignEOSSuccessful(1234,'xxx')", v -> {}) 是什么类型是取决于script的字符串怎么拼

HallCheng commented 5 years ago

哦哦,我是拼的问题; 你那里有配套的java签名的方法吗,我这边交易、抵押都没有问题,但是根据dapp传入的参数签名 报3090003

HallCheng commented 5 years ago

加了引号

xuewuli commented 5 years ago

哦哦,我是拼的问题; 你那里有配套的java签名的方法吗,我这边交易、抵押都没有问题,但是根据dapp传入的参数签名 报3090003

只有个错误码不好判断,只能知道是签名没验过,最好附带上完整message PS. 我这边踩过个坑看看是否有关联 expiration传过来时间没有Z结尾,但确是UTC时间,被我当作本地时间转换后遇签名错误

HallCheng commented 5 years ago

error: {"code":500,"message":"Internal Service Error","error":{"code":3090003,"name":"unsatisfied_authorization","what":"Provided keys, permissions, and delays do not satisfy declared authorizations","details":[{"message":"transaction declares authority '{\"actor\":\"hazdmnzzgage\",\"permission\":\"active\"}', but does not have signatures for it under a provided delay of 0 ms, provided permissions [], provided keys [\"EOS7x622TP9aLPKEw9vhdhBoh4vrLgMDTWr7XLp4KjNgAGT7tm63r\"], and a delay max limit of 3888000000 ms","file":"authorization_manager.cpp","line_number":517,"method":"check_authorization"}]}}

HallCheng commented 5 years ago

哦哦,我是拼的问题; 你那里有配套的java签名的方法吗,我这边交易、抵押都没有问题,但是根据dapp传入的参数签名 报3090003

只有个错误码不好判断,只能知道是签名没验过,最好附带上完整message PS. 我这边踩过个坑看看是否有关联 expiration传过来时间没有Z结尾,但确是UTC时间,被我当作本地时间转换后遇签名错误

搞定了,换了一种签名方式