{"_id":"@agent/walkie-talkie","_rev":"1-fd07f7e3178c0e63d308d87d715a806d","name":"@agent/walkie-talkie","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"version":"0.1.0","name":"@agent/walkie-talkie","main":"src/index.js","author":{"name":"case","email":"case@casesandberg.com"},"license":"MIT","gitHead":"33c7bb4a0d6c4659fa7868d256503f78d6a4ee8d","description":"> Communicate Between React Native Web Views and Mobile Web Apps","_id":"@agent/walkie-talkie@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"9.4.0","_npmUser":{"name":"case","email":"case@casesandberg.com"},"dist":{"integrity":"sha512-BrWFYsu2ybm+H3d0aCd8AItp+oHmv0Z74+ld5FORx33rrQZPcVAKxWPs2ZpJdnk2RPnZ0PtpzDeijHwmz1QW7Q==","shasum":"1a4c617ec9950be1236044ab99b896870d0a5886","tarball":"https://registry.npmjs.org/@agent/walkie-talkie/-/walkie-talkie-0.1.0.tgz","fileCount":308,"unpackedSize":1121365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGepXCRA9TVsSAnZWagAAWeQP/0t161LSdFS0I0+1M02T\nuiRBgIATLlvSfDxSFQKb2yqYr/bxoDnxkjTNn30vkqkm4bN1+0Wj6/CYt/I+\nntWhQQpkcV8AFHY684pALtBiANnO5VC1pqfgIGaH3Co41yEk3fbAGUnYX6Ei\n51oxlxgxtOISskWccPC7g4bWlFwuuuAQdWiL6gnruSICWiIDlJ32Wx0qAWbG\nvPWJyY+4rco6Ga/IXHtzaEAd8RVpc8EhTRar0W2Eskn7ZFCd5CMXMiplJjg4\nNasBaohSrJlCEmyf7koAsHruVXOzIHZjc3xZEF2oLY0Rf1qsw/zT2/KJ4xUY\nOXLqCyQIBU7BEbcErWH7Mg+pp6zkaI4aV5ugA68e2aRPY6R7EiaPgSK2g98i\njFjGasTI3n6EjIZG2KUJl8bXJz5REOExC60I2PfHqC1PzNcw3Q9DO85krgNN\nbQRE9HoZaIRWpAM38DeX0cN0aoQgduDfBioinlUzladxPrFPSGgUhb8vvQnz\nR130eiVPM3iJTHh/89mbY7s01Q0oxFPohXEaefBeeg5gg+tC5Gl5IeVoPkF1\nalN/A7+NW7HzaPx1172/QUgLlQiItGoPhcyNqKYbU1VRD0BtUIA7bGmZlsB6\njj7pgHvU+xS2EbiefyaHA8j+/gUo9K090Pzu9OmzQQuPCNGnCS/CCyWs8aPa\nCwi2\r\n=TChc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMM/mlr93+lHMepNjNXawJaNrH6ZkgnbJMSiQQVToZiwIgSAID34JIghgRZAu5fxjkFX/0VudiZcF4YvmvrF6iO5A="}]},"maintainers":[{"name":"case","email":"case@casesandberg.com"},{"name":"agent-owner","email":"agent@casesandberg.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/walkie-talkie_0.1.0_1545202262501_0.2503029956801244"},"_hasShrinkwrap":false}},"time":{"created":"2018-12-19T06:51:02.330Z","0.1.0":"2018-12-19T06:51:02.715Z","modified":"2022-04-04T11:55:56.806Z"},"maintainers":[{"name":"case","email":"case@casesandberg.com"},{"name":"agent-owner","email":"agent@casesandberg.com"}],"description":"> Communicate Between React Native Web Views and Mobile Web Apps","author":{"name":"case","email":"case@casesandberg.com"},"license":"MIT","readme":"# Walkie Talkie\n\n> Communicate Between React Native Web Views and Mobile Web Apps\n\n```\nnpm i @agent/walkie-talkie\n```\n\n### Usage in Native\n```js\nimport { NativeWalkieTalkie } from '@agent/walkie-talkie'\n\nconst walkieTalkie = new NativeWalkieTalkie({ logs: true })\n\nwalkieTalkie.onMessages(async (message) => {\n    switch (message.type) {\n        case 'NATIVE/ALERT': {\n            return await new Promise((resolve, reject) => {\n                Alert.alert(\n                    message.message,\n                    '',\n                    [\n                        {text: 'Yes', onPress: () => resolve(message)},\n                        {text: 'No', onPress: reject},\n                    ]\n                )\n            })\n        }\n        default:\n            return message\n    }\n\n})\n```\n\n### Usage in Web\n```js\nimport { WebWalkieTalkie } from '@agent/walkie-talkie'\n\nconst walkieTalkie = new WebWalkieTalkie({ logs: true })\n\nwalkieTalkie.onReady(() => {\n    walkieTalkie.send({ type: 'NATIVE/ALERT', message: 'Hello from Web' })\n        .then(() => walkieTalkie.sendLog('accepted alert'))\n        .catch(() => walkieTalkie.sendLog('rejected alert'))\n})\n\n// This will be inside a middleware so it can dispatch.\nwalkieTalkie.onMessages((message) => {\n    switch (message.type) {\n        case 'NOTIFICATION':\n\n            dispatch(actions.showNotification({ message }))\n\n            return {\n                ...message,\n                testing: 123,\n            }\n        default:\n            return message\n    }\n\n})\n```\n\n### Methods\n\n* `onReady(cb)` callback fires when each bridge is ready\n* `onMessages(cb)` callback fires whenever there is a message from the other bridge\n* `send(action)` send an action to the other bridge\n","readmeFilename":"readme.md"}