默認
發表評論 9
想開發IM:買成品怕坑?租第3方怕貴?找開源自已擼?盡量別走彎路了... 找站長給點建議
[已回復] 求助uni-app中引入MobileIMSDK-Web開發的IM相關文件后app白屏
閱讀(1100) | 評論(9 收藏 淘帖
開發h5端使用uni-app并引入im原生js文件以及socket.io后正常運行,可以正常打包成靜態頁面部署到服務器并正常打開,但是打包成app后或者在真機環境下運行打包app白屏并報錯,在注銷掉引入im的路徑后項目正常啟動,是不是因為我引入socket.io的方式不對?還是im代碼中有不支持移動端的寫法?求助!

即時通訊網 - 即時通訊開發者社區! 來源: - 即時通訊開發者社區!

WechatIMG266.png (300.02 KB, 下載次數: 14)

socket引入方式

socket引入方式

WechatIMG265.png (292.79 KB, 下載次數: 16)

app端報錯信息

app端報錯信息
推薦方案
評論 9
最新的進展:發現只要是require引入的文件都會報錯
socket.io.js的引用,有點特殊,這是socket.io這個庫的官方開發時決定的,具體請詳細讀一下我在這個帖子《[已解決] MobileIMSDK-Web導入到自己的web中,瀏覽器端的socket.io.js如何導入啊》,2樓的回復。

至于你說的require會報錯,MobiileIMSDK相關的js,都是最原生的js實現,沒有使用任何復雜的技巧或封裝,只要你引用一般的js能用,mobileimsdk-web就能用,這個估計你得排查一下是不是你的用法上有什么情況。
簽名: 《主流移動端賬號登錄方式的原理及設計思路》http://www.uktmgv.tw/thread-2863-1-1.html
引用:JackJiang 發表于 2019-11-03 18:52
socket.io.js的引用,有點特殊,這是socket.io這個庫的官方開發時決定的,具體請詳細讀一下我在這個帖子《[ ...

npm install socket.io之后在頁面引入,mobileimsdk-client-sdk將IMSDKexport出去后,報io未定義

WechatIMG267.png (233.49 KB, 下載次數: 14)

引入socket報錯

引入socket報錯
引用:IvanGitZ 發表于 2019-11-03 19:21
npm install socket.io之后在頁面引入,mobileimsdk-client-sdk將IMSDKexport出去后,報io未定義

通過socket.io-client引入后解決了not define,但是又報了IMSDK.getLoginInfo().loginUserId  is not an object的錯
引用:IvanGitZ 發表于 2019-11-03 19:21
npm install socket.io之后在頁面引入,mobileimsdk-client-sdk將IMSDKexport出去后,報io未定義

那看來,你修改后,socket.io.js引用是沒有問題了。

按照異常日志里的提示,你看看mobileimsdk-client-sdk.js的196行為什么在你的uni-app下會報錯。

只能按照錯誤提示一個一個去核實了。

另外,為何你測試環境可以,打成app卻不可以,你用的uni-app框架,有這兩種運行方式方面的差異說明嗎?你查一下他們官方的手冊,看看能不能找出什么線索
簽名: 《主流移動端賬號登錄方式的原理及設計思路》http://www.uktmgv.tw/thread-2863-1-1.html
引用:JackJiang 發表于 2019-11-03 19:56
那看來,你修改后,socket.io.js引用是沒有問題了。

按照異常日志里的提示,你看看mobileimsdk-client ...

socket.io里面有document.createElement的方法,而uni-app中指出不能使用window,document,location此類對象,這個問題您有解決思路嗎?
引用:IvanGitZ 發表于 2019-11-03 21:58
socket.io里面有document.createElement的方法,而uni-app中指出不能使用window,document,location此類 ...

那估計得用uni-app里的相應對象替換掉了,必竟uni-app這類混合框,自帶的網頁引擎都是閹割和修改版,并非web標準版。

你可以參考一下這個微信小程序版的sockeet.io庫:https://github.com/10cella/weapp.socket.io,因為微信小程序引擎也是個閹割和修改版,它里面也沒有window這樣的對象(小程序的全局對象名貌似是叫app)。你理解一下,然后舉一反三
簽名: 《主流移動端賬號登錄方式的原理及設計思路》http://www.uktmgv.tw/thread-2863-1-1.html
引用:JackJiang 發表于 2019-11-03 22:39
那估計得用uni-app里的相應對象替換掉了,必竟uni-app這類混合框,自帶的網頁引擎都是閹割和修改版,并非 ...

服務器端:我用的是python-flask作為服務器,uni-app框架只能使用Flask-Sockets庫【Flask-SocketIO不支持,原因參考:https://blog.csdn.net/weixin_43343144/article/details/92801617


研究了一周,最后找到一句多么令人悲傷的話,使用uni.connect連接測試用flask-sockets庫起的服務端,可以成功,一直都是服務端的問題
引用:IvanGitZ 發表于 2019-11-07 15:22
服務器端:我用的是python-flask作為服務器,uni-app框架只能使用Flask-Sockets庫【Flask-SocketIO不支持 ...

在一些并不是特別主流的框架里用websocket這類技術,確實有點煩,必須支持的程度都不一樣,更別說開源框架的支持了,因為名氣根本不夠。如果一定要這樣整的話,只能自已動手改造了
簽名: 《主流移動端賬號登錄方式的原理及設計思路》http://www.uktmgv.tw/thread-2863-1-1.html
打賞樓主 ×
使用微信打賞! 使用支付寶打賞!

返回頂部
曾氏料二肖中特