我正在尝试构建一个ReactNative聊天应用程序。后端由Prosody XMPP/Bosh服务器组成。现在我想通过使用Strophe.js Javascript库进行连接。我的问题是Strophe.js库依赖于用于生成XML节点的全局document
变量。你们中的任何一个人是否已经有同样的问题,或者有什么线索可以让它工作?在ReactNative使用使用Strophe.js与ReactNative
3
A
回答
0
Javascript引擎是无头的,这意味着它不会提供全局对象像navigator
,document
,location
等其他比浏览器功能全面,并且有一个正常的浏览器的所有功能XHR
。
Storephe与服务器的通信全部基于XHR请求。您只需要模拟文档对象,以防止Strophe在找不到document
对象时引发异常。为了这个确切的原因,建立了mock-browser。如何使用一个简单的例子:
let MockBrowser = require('mock-browser').mocks.MockBrowser;
let mock = new MockBrowser();
GLOBAL.window = mock.getWindow()
GLOBAL.document = mock.getDocument()
GLOBAL.navigator = mock.getNavigator()
+0
嘿@bman,你有没有试过这个解决方案?我似乎无法使用RN进行工作。您介意分享一些关于如何开始使用Strophe +模拟浏览器的代码吗?非常感谢! –
2
我发现了一个有效的解决方案:使用ReactNative的WebView 进出口运行并行和不可见我ReactNativeApp,类似这样的加密(但ReactNativeWebview没有反应过来本地的WebView Javascript Bridge)
在WebView中你可以使用Strophe,你只需要在WebView中为RN和Strophe之间的通信编写一个Wrapper。
我会尽量让gitRepo与工作基本版本
(检查加密例子: 3210 )
相关问题
- 1. ReactNative:使用Atom IDE
- 2. 使用NSURLProtocol和ReactNative
- 3. 定制XMPP消息与Strophe.js
- 4. 插座IO与ReactNative
- 5. XMPP:AngularJs + Strophe.js
- 6. 使用XMPP,strophe.js聊天应用
- 7. ReactNative与远程存储库
- 8. 无法与服务器的Openfire使用strophe.js
- 9. node.js,XMPP Strophe.js
- 10. Strophe.js带注册
- 11. 授权请求,利用strophe.js
- 12. 卸载ReactNative应用 - 使用Asyncstorage
- 13. WebStorm + ReactNative?
- 14. 使用ReactNative检索Firebase数据
- 15. 无法在ReactNative中使用ListView滚动
- 16. ReactNative导航
- 17. ReactNative和NativeBase Radio
- 18. ReactNative iOS Spotify SDK
- 19. 错误调用RCTDeviceEventEmitter.emit在ReactNative
- 20. XMPP Strophe.JS应用程序安全问题
- 21. AngularJs + Strophe.js接收消息
- 22. Strophe.js收到通知(撰写)
- 23. Strophe.js没有连接到openfire
- 24. 在线和离线用户使用strophe.js实时
- 25. ReactNative inline sytle vs Stylesheet.create
- 26. ReactNative setState JSON对象
- 27. 自定义DrawerNavigator - ReactNative
- 28. 存在问题使用ejabberd,strophe.js,strophe.muc.js和strophe.roster.js
- 29. 无法使用strophe.js和ejabberd发送消息
- 30. 使用Openfire,Javascript(strophe.js)和html5 websockets的聊天客户端?
嘿sebbo,我知道它已经有一段时间,因为你问,但你管理使其工作?如果您愿意,我很乐意与您讨论这个问题,这对我很有帮助! 干杯 –
嗨@PrettyGoodPancake不幸的是我找不到一个简单的方法来使它工作,所以我基本上切换到第三方消息服务(sendbird.com) – sebbo
你有没有试过https://github.com/node-xmpp/ node-xmpp?我认为NodeJS lib更可能在RN中工作。 –