我正在嘗試構建一個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中工作。 –