問題場景: 在登錄界面獲取驗證碼短信時點擊 鍵盤上方點擊快捷輸入短信驗證碼 會輸入兩次驗證碼.
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的乳源網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
解決方案1:
限制輸入框輸入的長度 ,短信驗證幾位就限制成幾位.
快捷有效.但如果后期更換短信模板位數(shù)變化會有影響.
maxLength:[驗證碼位數(shù)]
解決方案2:
判斷重復(fù)的驗證碼
定義 TextEditingController
TextEditingController _controller = TextEditingController();
造成原因: ??? 網(wǎng)上說出發(fā)了原生 UITextFieldTextDidChangeNotification 的問題導(dǎo)致的.
ae自帶的文字特效 直接搜索下面需要的就好
Encoder Fade Out.ffx 逐字隨機(jī)變換淡出Fade Out By Character.ffx 逐字淡出Fade Out Slow.ffx 連續(xù)逐字淡出Raining Characters Out.ffx 隨機(jī)變換墜落淡出Random Fly Off .ffx 隨機(jī)右飛Random Fly Off 2.ffx 隨機(jī)左飛Random Word Fly Off.ffx 逐漸加速整體右飛Slide Off Right By Character.ffx 逐字右飛Slide Off Right By Word.ffx 整體勻速右飛(抖動)Stretch Out Each Line.ffx 左逐字勻速縮小Stretch Out Each Word.ffx 左逐字加速縮小Twirl Off Each Line.ffx 右螺旋 (以結(jié)尾文字為圓心,逐字向右螺旋縮小淡出)Twirl Off Each Word.ffx 右螺旋 (與上面效果,略有不同)**********************************************Animation in 入屏動畫**********************************************Center Spiral.ffx 螺旋進(jìn)入 (以當(dāng)前文字行中心為圓心,旋轉(zhuǎn)螺旋淡入,類似風(fēng)輪)Characters Shuffle In.ffx 逐字飛入(從左至右)Decoder Fade In.ffx 逐字隨機(jī)變換淡入Drop In By Character.ffx 逐字落下Espresso Eye Chart.ffx 隨機(jī)變換淡入Fade Up And Flip.ffx 上翻轉(zhuǎn)Fade Up Characters.ffx 逐字淡入Fade Up Lines.ffx 上弦淡入Fade Up Words.ffx 直線淡入Fly In From Bottom.ffx 逐字左上 (從右下方,逐字左上飛)Fly In With A Twist.ffx 逐字旋轉(zhuǎn)左上 (從屏幕中下方,逐字旋轉(zhuǎn)360度左上飛)Pop Buzz Words.ffx 可定義逐字變換 (在每個關(guān)鍵幀處重新定義文字內(nèi)容)Raining Characters In.ffx 隨機(jī)變換墜落淡入Random Fade Up.ffx 隨機(jī)淡入Random Shuffle In.ffx 隨機(jī)左飛入屏Random Word Shuffle In.ffx 左飛入屏Slow Fade On.ffx 漸顯Smooth Move In.ffx 前赴后繼 (逐字從左惻傾斜淡入,很有氣勢的)Spin In By Character.ffx 逐字旋轉(zhuǎn)左上 (從屏幕右下方,逐字逆時針旋轉(zhuǎn)360度左上飛)Spin In By Word.ffx 左上空翻Straight In By Character.ffx 逐字右飛入Straight In By Word.ffx 整體右飛入(抖動)Straight In Multi-Line 2.ffx 整體慢速右飛入(抖動)Straight In Multi-Line.ffx 整體右飛入(快速)Stretch In Each Line.ffx 逐字右放大飛入Stretch In Each Word.ffx 逐字右放大飛入Twirl On Each Line.ffx 左螺旋進(jìn)入Twirl On Each Word.ffx 左螺旋進(jìn)入Typewriter.ffx 打字機(jī)Wipe In To Center.ffx 隨機(jī)入屏**********************************************Fill and stork 填充和描邊動畫**********************************************Chasing Strokes.ffx 邊框暈光霓虹Fill Color Wipe.ffx 顏色逐字替換Flicker Color.ffx 邊框隨機(jī)縮放 (顏色也可變換)Flicker Color-scale.ffx 文字和邊框隨機(jī)縮放Flicker Green.ffx 綠色邊框隨機(jī)縮放Inflammation.ffx 文字邊框規(guī)律縮放變換Pulse Blue.ffx 藍(lán)色變換Pulse Orange.ffx 魔術(shù)邊框Pulsing Strokes 2.ffx 心跳邊框Pulsing Strokes.ffx 邊框循環(huán)縮放Rotate Hue.ffx 整體色彩變換Sliding Color Flicker.ffx 逐字色彩變換Stroke Ease Down.ffx 逐字落下邊框縮小Wiggly Stroke Width By Line.ffx 棉花糖Wiggly Stroke Width.ffx 邊框頻閃**********************************************Scale 縮放動畫**********************************************Large Scale.ffx 隨機(jī)放大入屏Let''''s Dance.ffx 躲閃Scale Down Word.ffx 單位縮小出屏Scale Down.ffx 整體縮小出屏Scale Up Word.ffx 單位放大入屏Scale Up.ffx 整體放大入屏Wiggly Scale Wipe.ffx 隨機(jī)縮放變換后逐字靜止Zoom Away.ffx 逐字縮小出屏Zoom Forward.ffx 逐字放大出屏**********************************************Tracking 字距**********************************************Contract.ffx 從后往前縮減Decrease Tracking.ffx 同時縮減Extend.ffx 從前往后增加Increase Tracking .ffx 同時增加Magnify.ffx 移動的放大鏡Spasm.ffx 隨機(jī)變換Stretchy.ffx 增加縮減 (如多行文字,則輪換增加縮減)**********************************************Rotation 旋轉(zhuǎn)**********************************************Drip Down.ffx 逐字下墜至邊緣 (當(dāng)然是摔癟了)Flip Up.ffx 逐字180反轉(zhuǎn)Full Rotation .ffx 逐字旋轉(zhuǎn)360度Loopy Loop.ffx 逐字大回旋Random Rotation.ffx 隨機(jī)旋轉(zhuǎn)歸位Rotate Chars.ffx 單字旋轉(zhuǎn)一周Rotate Per Word.ffx 整行旋轉(zhuǎn)一周 (如是多行字,則以每行的中心為圓心,以行為單位單獨旋轉(zhuǎn))Spin In.ffx 從右上旋轉(zhuǎn)45度落下Swirly Rotation.ffx 多米諾旋轉(zhuǎn)Whirlwind.ffx 逐字大回旋**********************************************Organic 自然模擬**********************************************Autumn.ffx 飄落Boiling.ffx 隨機(jī)出現(xiàn)后消失 (很卡通的效果,好像蚊子)Boomerang.ffx Y軸大回旋入屏Bounce Diagonal.ffx 逐字甩動入屏Chewing Gum.ffx 隨機(jī)上下拉伸入屏Climber.ffx 隨機(jī)爬行入屏Dip-Bounce.ffx 隨機(jī)跳動Double-Helix.ffx 擰勁Drop Bounce.ffx 隨機(jī)縮小入屏Fish Bait.ffx 隨風(fēng)擺動Flutter.ffx 旋轉(zhuǎn)飛入Flying Formation.ffx 可愛的螢火蟲Horsefly.ffx 隨機(jī)擺放入屏Hummingbird.ffx 水波蕩漾Insect Wipe.ffx 多米諾抖動Insects.ffx 八面來風(fēng)Labrador.ffx 多米諾入屏Leapfrog.ffx 依次推拉三次Loose Line.ffx 斷線的風(fēng)箏Ocean Tide.ffx 水中蕩漾Quiver.ffx 隨機(jī)顫抖Ripple.ffx 逐字漣漪Rubber Floor.ffx 逐字變高又復(fù)原Rubber.ffx 上下拉長又復(fù)原Sea-Sick.ffx 文字芭蕾Shuffle.ffx 逐字垂直翻轉(zhuǎn)Simmer.ffx 隨機(jī)躍動Slice And Dice.ffx 雨點式入屏Sprouts.ffx 隨機(jī)飄入Tag Team.ffx 蘭州抻面Wheatfield.ffx 水草Wind Current.ffx 風(fēng)箏Wobble.ffx 隨機(jī)45度翻轉(zhuǎn)從幫助菜單中,可以看到預(yù)置的效果.
作為一名開源愛好者,發(fā)掘優(yōu)秀的開源項目是一件非常有趣的事情。在第一期中,我分享了單頁個人網(wǎng)站模板、組裝式 Flutter 應(yīng)用框架、PHP 客戶端庫、Java 診斷工具等一些實用的庫和工具。本期依舊會為大家分享一些前端、后端、移動開發(fā)的相關(guān)工具,希望你能“淘”到適合自己的工具。
1.Vue-EasyTable
Vue-EasyTable 是一款基于 Vue2.x 的 table 組件,具備自適應(yīng)、表頭與列固定、自定義單元格樣式、自定義 Loading 等功能。
2.React-Calendar
這是一款具備原生日期格式的日歷組件。它不依賴 Moment.js,支持日期選擇范圍,涵蓋了各國語言,開箱即用。
3.Matter
CSS 實現(xiàn)的 Material 組件合集項目,作者已將部分作品開源,效果可以在 CodePen 上查看。
4.Revery
Revery 是一款用于構(gòu)建高性能、跨平臺桌面應(yīng)用的框架。它類似于加速版的原生 Electron,除了擁有類似 React / Redux 的庫,還具備 GPU 加速渲染功能,其內(nèi)置的編譯器速度也相當(dāng)快。
5.Web Accessibility Guide
這是一個精選了 Web 可訪問性貼士、技巧和最佳實踐的開源項目,你將會學(xué)習(xí)到一些改善 Web 可訪問性的實用做法。
1.SOFAJRaft
SOFAJRaft 是螞蟻金服開源的生產(chǎn)級 Java Raft 算法庫,它基于 Raft 一致性算法的生產(chǎn)級高性能 Java 實現(xiàn),支持 MULTI-RAFT-GROUP,適用于高負(fù)載低延遲的場景,易于使用。
2. Dragonwell
阿里開源了 OpenJDK 發(fā)行版 Dragonwell,它提供長期支持,包括性能增強(qiáng)和安全修復(fù)。在數(shù)據(jù)中心大規(guī)模 Java 應(yīng)用部署情況下,可以大幅度提高穩(wěn)定性、效率以及性能。
3.Lawoole
Lawoole 是一款基于 Laravel 和 Swoole 的高性能 PHP 框架。它兼具了 Laravel 的特點,還解決了其功能背后的性能問題。同時,你還能感受到與 Laravel 一樣的編碼體驗。
4.AntNest
AntNest 是一個簡潔、快速的異步爬蟲框架。它僅有 600 行代碼,基于 Python 3.6+.
5.PHP-Awesome
這個倉庫匯集了 PHP 優(yōu)秀的資源,供你查詢和參考。
1.FlutterBoost
FlutterBoost 是閑魚開源的新一代 Flutter-Native 混合解決方案。它能夠幫你處理頁面的映射和跳轉(zhuǎn),你只需要關(guān)心頁面的名字和參數(shù)即可。
2.MyLayout
MyLayout 是一套 iOS 界面視圖布局框架,可謂 iOS 下的界面布局利器。它集成了 iOS Autolayout、Size Classes、Android 的 5 大布局體系、HTML/CSS 的浮動定位技術(shù)以及 Flex-Box 和 Bootstrap 框架等主流的平臺的界面布局功能,并提供了一套簡單、完備的多屏幕尺寸適配的解決方案。
3.SegementSlide
SegementSlide 是一個 iOS UI 庫,它具備完整的滑滾及切換組件,旨在解決多層 UIScrollView 嵌套滾動的問題。
1.DevHub
DevHub 是一款跨平臺的 GitHub 通知管理客戶端,支持 Android、 iOS、網(wǎng)頁和桌面上使用,幫助你便捷的接收 GitHub 各類通知。
2.Reqman
Reqman 是一個幫助后端工程師進(jìn)行 API 測試的工具,同時也是一個基于 Node.js 的爬蟲工具。
3.FreeCodeCamp
說到 FreeCodeCamp,或許大家不會陌生,而這個項目就是他們建立的開源課程和相應(yīng)的代碼庫。網(wǎng)站提供了 6 大認(rèn)證課程,也涉及了全棧開發(fā)認(rèn)證。如果你感興趣,不妨了解下。
4.Gitter
Gitter 是 GitHub 小程序客戶端,作者采用 Taro 框架 + Taro UI 進(jìn)行開發(fā),而小程序內(nèi)數(shù)據(jù)則來自 GitHub Api V3.
5.Awesome Podcasts
這個項目收集了各類實用的播客,涵蓋了主流的編程語言,希望對你提升技術(shù)水平有所幫助。
6.編程圖書大全
書籍不光能在你迷茫的時候,給予你答案,還能在你提升技能的時候,給予你幫助。這個倉庫收集了眾多編程圖書,涉及主流編程語言、人工智能、算法、Linux、大數(shù)據(jù)等??纯?,有木有你需要的。
7.VS Code Netease Music
很多開發(fā)者喜歡邊寫代碼,邊聽音樂,VS Code Netease Music 這個插件就能滿足你在 VS Code 上聽歌的愿望。它使用 Webview 實現(xiàn),不依賴命令行播放器。
Star-Battle
Star-Battle 是一款使用 JavaScript ES6、Canvas 開發(fā)的飛船射擊類 游戲 。來 Enjoy 吧。
注:
如需轉(zhuǎn)載,煩請按下方注明出處信息,謝謝!
Dart作為高級語言,支持面向?qū)ο蟮暮芏嗵匦裕⑶抑С只趍ixin的繼承方式,基于mixin的繼承方式是指:一個類可以繼承自多個父類,相當(dāng)于其他語言里的多繼承。所有的類都有同一個基類Object,這和特性類似于Java語言,Java所有的類也都是繼承自O(shè)bject,也就是說一切皆對象。
Dart 是一門面向?qū)ο蟮恼Z言, 全部的類都是繼承自 Object , 除了支持傳統(tǒng)的 繼承、封裝、多態(tài) , 還有基于組合(Mixin-based)的繼承特性
類型推導(dǎo)(var/final/const)
var
final和const的區(qū)別
3.非零即真( )
4.字符串
5.集合
Dart中變量初始值為null,即使是int類型也可以是null(java中int默認(rèn)是0, boolean默認(rèn)是false); Dart支持自識別,可以是用var定義變量,也可以直接指定具體類型; final或者const都可修飾不可變的變量,final變量只能賦值一次,const是編譯時常量。
int和double是num子類,沒有float類型; 支持字符串模板,用${expression}的方式來實現(xiàn)字符串效果,類似如字符串拼接; String可以使用單引號或者雙引號; Dart沒有數(shù)組,只有列表; 其中List,Set,Map不是抽象接口,是具體實現(xiàn)類,可直接使用; Map的key沒有指定類型,key類型不一致不會報錯;key不能相同,但是value可以相同,value可以為null。 var name = 'Tom';
方法也是對象,方法可賦值給一個變量; 如果方法的參數(shù)是解構(gòu)出來的可以通過 @required 注解標(biāo)注為必填 const Scrollbar({Key key, @required Widget child}); 支持可選參數(shù),可選命名參數(shù)用{}包圍,可選位置參數(shù)寫在最后并且使用[]包圍 String say(String from, String msg, [String device]); 支持默認(rèn)參數(shù) void enableFlags({bool bold = false, bool hidden = false}) {…}; 以_開頭的方法都是私有的。 void main() {
支持閉包,閉包能夠訪問外部方法內(nèi)部的局部變量
1.空替換?? expr1 ?? expr2,如果expr1是non-null,返回其值。否則執(zhí)行expr2并返回其結(jié)果; 2.條件成員訪問?.P?.y = 4; 如果p是non-null,則設(shè)置y的值等于4; 3.類型判定操作符(as,is,is!); 4.級聯(lián)操作,可以在同一個對象上連續(xù)調(diào)用多個函數(shù)以及訪問成員變量;
和java不同的是,Dart可以拋出任意類型的對象; 程序不會強(qiáng)制要求開發(fā)中處理異常,但若發(fā)生異常,程序會中斷; 其中異常主要分為Error和Exception兩種類型。
創(chuàng)建對象可以不使用new關(guān)鍵字; Dart中沒有public,private,protected這些關(guān)鍵字; 沒有interfaces關(guān)鍵字,每一個類都是一個接口。我們可以用抽象類來類比java中的接口; Dart把多重繼承的類叫做Mixins。
支持語法糖 Point(this.x, this.y); 每個實例變量都會自動生成一個getter方法,Non-final變量還會自動生成一個setter; 命名構(gòu)造函數(shù),使用命名構(gòu)造函數(shù)可以為一個類實現(xiàn)多個構(gòu)造函數(shù),也能更加清晰的表明你的意圖;
斷言是如果條件表達(dá)式不滿足則停止代碼執(zhí)行; 斷言只在檢查模式下運行有效,如果在生產(chǎn)模式下運行則不會執(zhí)行。
Dart 以兩種模式運行: Dart 1.x 有生產(chǎn)模式和檢查模式兩種模式, Dart 2.x 中移除了檢查模式。
注:建議在開發(fā)/測試模式中使用 檢查模式 運行 Dart VM ,因為它會添加警告和錯誤以幫助開發(fā)和調(diào)試過程;選中的模式會強(qiáng)制執(zhí)行各種檢查,例如類型檢查等。
dart標(biāo)識符可以包括字符和數(shù)字,但不能以 數(shù)字開頭 。
Dart 是一種面向?qū)ο蟮木幊陶Z言。
代碼說明:定義了一個類 TestClass ,這個類擁有一個方法 disp() ,方法可以實現(xiàn)在終端打印字符串 Hello Dart! ,使用 new 關(guān)鍵字創(chuàng)建類的對象,該對象調(diào)用方法 disp() 。
關(guān)于dart的學(xué)習(xí)還有很多;我列出如下: Flutter高級工程師進(jìn)階學(xué)習(xí)資料;需要可以私信我。發(fā)送“核心筆記”或“手冊”,即可領(lǐng)取資料!
對于現(xiàn)在的APP應(yīng)用,國際化需求并不高,但是作為一項有用的功能,我們還是按部就班地去實現(xiàn)它,由于還未完成全局狀態(tài)管理和全局事件總線,暫時使用了一個全局變量Locale去定義,因此要完成切換就需要手動修改變量值后重啟應(yīng)用(熱更新是不可以的),目前僅實現(xiàn)簡體中文和美式英文兩種語言
1.引入國際化需要的包。
2.在Flutter節(jié)點下添加generate,可以在重啟或者熱更新時實時更新翻譯文件。
3.在根目錄下增加l10n.yaml文件,用于配置實時更新的內(nèi)容。
4.在根Widget的MaterialApp中增加如下配置,大多都是來自第三步自動更新的內(nèi)容,如果編譯器不能自動識別,可以手動引入如下包:import 'package:flutter_gen/gen_l10n/app_localizations.dart';
5.編譯翻譯文件,在lib/I10n的目錄下新增app_zh.arb和app_en.arb兩個文件(如果要具體到國家代碼可以新建為app_zh_CN.arb和app_en_US.arb),文件采用Json的語法,Vscode等編輯器也有對應(yīng)的語法插件,至于翻譯語法,大家可以自行了解,限于篇幅,僅做常用的展示。
注:app表示變量名,后續(xù)可以使用AppLocalizations.of(context)!.app調(diào)用,語言切換時就會按照對應(yīng)的翻譯文件進(jìn)行展示。
@app表示對app變量的描述,是給翻譯人員看的,與代碼運行無關(guān)。
模板語句,有時候需要實現(xiàn)類似“倒計時20秒”只有數(shù)字變化的語句,此時就形成了模板插值語句,在模板上插入數(shù)字,上述hit6即實現(xiàn)了這樣一個語法,最終會被翻譯為一個函數(shù),讀者可自行嘗試。
關(guān)于iOS平臺
嘗試過國際化的讀者可能發(fā)現(xiàn)在iOS平臺無法順利完成切換(上述全局變量方式和使用全局狀態(tài)管理的實現(xiàn)方式有本質(zhì)區(qū)別,注意區(qū)分),這是因為iOS應(yīng)用程序有一套自建的語言環(huán)境管理機(jī)制,所以使用上面的方式適配國際化對于iOS應(yīng)用程序是無效的,為了讓iOS應(yīng)用程序也能支持國際化,還需要在原生iOS工程中進(jìn)行額外的配置。 使用Xcode打開Flutter項目的iOS原生工程,切換到工程面板,然后在Localization選項配置中添加中文支持即可。
在Android/ios平臺權(quán)限處理是繞不開的內(nèi)容,本應(yīng)用作為demo應(yīng)用,會盡可能地多索要權(quán)限,但是設(shè)計為僅在用戶安裝后第一次打開時索取一次,后續(xù)不再主動索取,僅在用戶需要使用相關(guān)功能時引導(dǎo)用戶給予權(quán)限即可。權(quán)限管理的實現(xiàn)相對簡單,可以引用permission_handler包,并加入以下代碼,在APP啟動時調(diào)用一次requestAllPermission函數(shù)即可。
下章內(nèi)容 : 主題切換,歡迎頁,引導(dǎo)頁,
小破站同名,同步文章且定時直播編程,有興趣可以移步
OpenIM文檔方面的建設(shè)一直遠(yuǎn)遠(yuǎn)落后于開發(fā), 也經(jīng)常被開發(fā)者詬病,在接下來一周的時間里,我們重點補(bǔ)齊文檔,讓開發(fā)者更輕松接入。由于app sdk底層都是go來實現(xiàn),所以本文先寫一個模板和框架,在接下來的時間里,會有iOS、Android、Flutter、Uniapp、jssdk同事補(bǔ)充具體的細(xì)節(jié),并更新到官網(wǎng)
![0](C:\Users\Administrator\Desktop\OpenIM\官網(wǎng)相關(guān)\技術(shù)文章\6-25\0.png)
## 初始化及登錄
初始化并登錄成功回調(diào),是正常使用OpenIM 服務(wù)的前提
| SDK? ? ? ? ? ? ? | 描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| :--------------- | :----------------------------------------------------------- |
| [Login]? ? ? ? ? | 登錄,如果登錄成功,必須退出登錄才能再次執(zhí)行登錄操作? ? ? ? |
| [Logout]? ? ? ? | 退出登錄? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [GetLoginStatus] | 獲取登錄狀態(tài), 101:登錄成功,? 102:登陸中,? 103:登錄失敗,? 201:退出登錄 |
| [GetLoginUser]? | 獲取當(dāng)前登錄用戶UserID,此時用戶登錄狀態(tài)未知? ? ? ? ? ? ? ? |
| [initSDK]? ? ? ? | 初始化 SDK,整個生命周期執(zhí)行一次,登錄相關(guān)監(jiān)聽介紹如下:? ? |
OpenIM和調(diào)用方利用監(jiān)聽回調(diào)機(jī)制,和調(diào)用方信息互通,把登錄狀態(tài)通過異步回調(diào)方式即時傳遞給調(diào)用方,確保信息及時傳達(dá)而不阻塞其主線程。
## 監(jiān)聽說明
| 登錄相關(guān)監(jiān)聽? ? ? ? | 回調(diào)描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| :------------------- | :----------------------------------------------------------- |
| [OnConnecting]? ? ? | 連接中,在連接后臺時(包括重連)回調(diào)? ? ? ? ? ? ? ? ? ? ? ? |
| [OnConnectSuccess]? | 連接成功? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [OnConnectFailed]? ? | 連接失敗,如果因網(wǎng)絡(luò)連接失敗會重連,其他情況不重連? ? ? ? ? |
| [OnKickedOffline]? ? | 被踢下線,可能由于多端登錄策略所致,或后臺管理員強(qiáng)制其退出登錄 |
| [OnUserTokenExpired] | 檢測token過期回調(diào)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
## 調(diào)用流程
OpenIM調(diào)用流程分為如下幾步:
(1)初始化:在整個生命周期執(zhí)行一次
(2)設(shè)置監(jiān)聽:包括群組監(jiān)聽,好友監(jiān)聽,用戶監(jiān)聽,消息及會話監(jiān)聽,這些監(jiān)聽會在其他章節(jié)中描述
(3)登錄:登錄回調(diào)成功后再執(zhí)行其他操作,否則可能出現(xiàn)資源加載未完成的錯誤
(4)收發(fā)消息等操作;
## 好友管理相關(guān)接口
OpenIM提供好友關(guān)系托管,比如好友申請,同意,以及好友獲取等,OpenIM在客戶端本地存儲好友關(guān)系,并結(jié)合消息通知機(jī)制,按需調(diào)用后臺接口,確保本地和服務(wù)端數(shù)據(jù)一致。同時利用監(jiān)聽機(jī)制,把數(shù)據(jù)變化通過異步回調(diào)傳達(dá)調(diào)用方。OpenIM在收發(fā)消息時,默認(rèn)不檢查好友關(guān)系,您可以在配置文件中自行修改。OpenIM好友關(guān)系是雙向關(guān)系,A添加B為好友后,則A在B的好友列表中,B也在A的好友列表中,A刪除B,僅僅只是刪除A的好友列表,而B的好友列表不受影響。同樣,黑名單也類似。
| SDK? ? ? ? ? ? ? ? ? ? ? ? ? ? | 描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| :----------------------------- | :------------------------------------------------------- |
| [GetDesignatedFriendsInfo]? ? | 獲取指定好友的信息? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [GetFriendList]? ? ? ? ? ? ? ? | 獲取所有的好友列表? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [SearchFriends]? ? ? ? ? ? ? ? | 通過關(guān)鍵詞搜索好友? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [CheckFriend]? ? ? ? ? ? ? ? ? | 檢查是否好友關(guān)系? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [AddFriend]? ? ? ? ? ? ? ? ? ? | 發(fā)起添加好友請求? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [SetFriendRemark]? ? ? ? ? ? ? | 設(shè)置好友備注? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [DeleteFriend]? ? ? ? ? ? ? ? | 刪除好友(單向刪除)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [GetRecvFriendApplicationList] | 獲取我收到的添加好友申請列表? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [GetSendFriendApplicationList] | 獲取我發(fā)起的的添加好友申請列表? ? ? ? ? ? ? ? ? ? ? ? ? |
| [AcceptFriendApplication]? ? ? | 同意好友申請? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [RefuseFriendApplication]? ? ? | 拒絕好友申請? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| [SetFriendListener]? ? ? ? ? ? | 設(shè)置好友、黑名單相關(guān)監(jiān)聽,用于UI層實時感知數(shù)據(jù)變化并刷新 |
## 監(jiān)聽說明
好友監(jiān)聽器的作用:調(diào)用方設(shè)置好友監(jiān)聽,好友關(guān)系的變化會通過OpenIM消息機(jī)制實時同步到需要感知的在線用戶,包括用戶的其他端,調(diào)用方根據(jù)回調(diào)事件做相關(guān)的數(shù)據(jù)處理。
比如用戶B在Android端添加用戶A為好友,用戶A(所有在線的終端)收到B的好友申請,則A調(diào)用GetRecvFriendApplicationList獲取收到的好友申請列表,刷新界面。同時,用戶B在線其他的終端比如PC端也會收到通知,B調(diào)用GetSendFriendApplicationList獲取發(fā)起的好友申請列表,刷新B發(fā)出的好友申請列表。
當(dāng)然也可以利用回調(diào)的參數(shù)信息,做增量處理,而不用獲取全量的好友申請列表。
以用戶B申請?zhí)砑佑脩鬉為例
| 好友及黑名單監(jiān)聽? ? ? ? ? ? ? | 描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| :---------------------------- | :--------------------------------------------------- |
| [OnFriendApplicationAdded]? ? | 好友申請列表增加,主動發(fā)起者和被動添加者會收到? ? ? |
| [OnFriendApplicationDeleted]? | 好友申請列表刪除,主動刪除者會收到? ? ? ? ? ? ? ? ? |
| [OnFriendApplicationAccepted] | 好友申請被同意,主動發(fā)起者和被動添加者會收到? ? ? ? |
| [OnFriendApplicationRejected] | 好友申請被拒絕,主動發(fā)起者和被動添加者會收到? ? ? ? |
| [OnFriendAdded]? ? ? ? ? ? ? | 好友增加,用戶好友增加時會收到? ? ? ? ? ? ? ? ? ? ? |
| [OnFriendDeleted]? ? ? ? ? ? | 好友刪除,用戶好友減少時會收到? ? ? ? ? ? ? ? ? ? ? |
| [OnFriendInfoChanged]? ? ? ? | 好友信息改變,用戶好友信息(比如昵稱等)改變時會收到 |
| [OnBlackAdded]? ? ? ? ? ? ? ? | 黑名單增加,用戶黑名單增加時會收到? ? ? ? ? ? ? ? ? |
| [OnBlackDeleted]? ? ? ? ? ? ? | 黑名單移除,用戶黑名單減少時會收到? ? ? ? ? ? ? ? ? |
## 項目介紹
OpenIM繼續(xù)領(lǐng)跑開源IM領(lǐng)域,在廣大開發(fā)者的支持下,目前github star突破9k。在數(shù)據(jù)泄露、信息外泄、隱私濫用的時代,IM私有化部署需求旺盛。其中,政企協(xié)同辦公對IM需求猛增,隨著信息化技術(shù)的迭代升級以及信創(chuàng)產(chǎn)業(yè)加速落地和實踐,協(xié)同辦公軟件的發(fā)展?jié)摿⑦M(jìn)一步被釋放。“安全可控“逐步成為第一要素。對于社區(qū)交友領(lǐng)域,暴露出的隱私安全問題越來越多,私有化部署確保用戶數(shù)據(jù)不泄露。
OpenIM從服務(wù)端到客戶端SDK開源即時通訊(IM)整體解決方案,可以輕松替代第三方IM云服務(wù),打造具備聊天、社交、辦公功能的app。
github地址:
開發(fā)者中心:
## OpenIM團(tuán)隊
創(chuàng)始團(tuán)隊來自資深I(lǐng)M技術(shù)團(tuán)隊,我們致力于用開源技術(shù)創(chuàng)造服務(wù)價值,打造輕量級、高可用的IM架構(gòu),開發(fā)者只需簡單調(diào)用 SDK,即可在應(yīng)用內(nèi)構(gòu)建多種即時通訊及實時音視頻互動場景。OpenIM優(yōu)勢:開源,安全,可靠,低成本。對于信息安全重視的電子政務(wù),企業(yè)協(xié)同辦公,OpenIM都是非常好的選擇。
從公司成立之初就將“開源”作為核心戰(zhàn)略來推進(jìn),開源充分體現(xiàn)了自由、平等、分享的互聯(lián)網(wǎng)精神。
OpenIM邀請全球技術(shù)極客參與技術(shù)優(yōu)化,讓開發(fā)者輕松集成,讓每一個應(yīng)用都具備IM功能,同時考慮企業(yè)的接入成本、服務(wù)器資源以及最重要的數(shù)據(jù)安全性和私密性。
文章題目:flutter模板,flutter模板代碼
URL網(wǎng)址:http://aaarwkj.com/article0/dssgeoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)建站、App開發(fā)、商城網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)