我正在尝试建立一个ReactNative聊天应用程序。后端由Prosody XMPP/Bosh服务器组成。现在,我想使用Strophe.js Javascript库进行连接。我遇到的问题是,XML库依赖于全局document变量来生成Strophe.js节点。你们中有没有人已经有了同样的问题,或者知道如何让它工作?
发布于 2017-09-25 17:50:30
我找到了一个可行的解决方案: Im使用并行运行的ReactNative WebView,对我的ReactNativeApp不可见,类似于这个Crypto (但使用ReactNativeWebview!不是React Native WebView Javascript桥)
在WebView中你可以使用Strophe,你只需要在WebView中为RN和Strophe之间的通信编写一个包装器。
我将尝试用一个可用的基本版本来制作gitRepo
(检查加密示例:https://github.com/saulshanabrook/react-native-webview-crypto )
发布于 2016-03-02 09:07:47
在ReactNative中使用的Javascript引擎是无头的,这意味着它不提供全局对象,如navigator、document、location等。除此之外,浏览器功能齐全,具有普通浏览器的所有XHR功能。
Storephe与服务器的通信完全基于XHR请求。您只需模拟document对象,以防止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()发布于 2019-12-09 01:02:23
有一些xmpp javscript库可以与react-native一起使用。但它们需要进一步的配置。
还有一些针对react原生的非常活跃的xmpp库。XMPP.js就是其中之一。它们还提供插件支持。但是,它们还处于开发的早期阶段,当然像strophe.js这样的库要高级得多。
https://stackoverflow.com/questions/33570770
复制相似问题