xuewuli / Tiny.Scatter

Scatter compatible eos injection library
31 stars 16 forks source link

我用原生实现了js 的注入ReactNative 怎么实现注入 #8

Closed jeffy7 closed 5 years ago

jeffy7 commented 5 years ago

其实原生也不是算完整的实现了注入,只是我把account写死了,然后在一个DApp 的demo上读取出来了,不太会用怎么去在点击授权的地方调用方法传入account 和私钥,或者说给一个选择列表 让用户选择哪一个账户

ReactNative 上我理解的是 在一个页面里面夹在一个DApp 的URL,然后injectedJavaScript 这个js 怎么写,tiny_scatter.js 加上

`""// 'value' as string. "SIGK1..." function onSignEOSMessageSuccessful(id, value) { BrigeAPI.sendResponse(id, value) }

    // 'value' as string. '{"signatures":["SIG_K1_..."]}'
    function onSignEOSSuccessful(id, value) {
        BrigeAPI.sendResponse(id, JSON.parse(value))
    }

    // 'error' as string
    function onSignEOSError(id, error) {
        BrigeAPI.sendError(id, {"type": "signature_rejected", "message": error, "code": 402, "isError": true})
    }

    TinyIdentitys.initEOS("\(account)", "\(publicKey)");

    const scatter = new TinyScatter();
    scatter.loadPlugin(new TinyEOS());

    window.scatter = scatter;

    document.dispatchEvent(new CustomEvent('scatterLoaded'));"`

拼接成的字符串注入? 还是怎么操作,望指导

xuewuli commented 5 years ago

没太理解你的问题, reactnative相关的东西没整过. 但就说注入的话, 得益于WKWebView自身对注入的支持, readme里关于iOS的部分就时最简单的注入示例. tiny.scatter通过Postmessage调用原生层做签名(signEOS)操作, 原生通过onSignEOSSuccessful告知js签名结果.

xuewuli commented 5 years ago

添加了一个reactnative版的demo

jeffy7 commented 5 years ago

nice