直播app原始碼,跳轉站外連結或平臺內部跳轉頁面
直播app原始碼,跳轉站外連結或平臺內部跳轉頁面實現的相關程式碼
}); } else { await Future.delayed(Duration(milliseconds: 10)); showLoading(); } } @override void dispose() { super.dispose(); setIsDispose(true); viewModel.showLoadingFun = null; viewModel.dismissLoadingFun = null; } } abstract class BaseViewModel extends ChangeNotifier with BaseViewModelInterface, NavigatorMixin, ToastMixin, SharePreferenceMixin, EventBusMixin, DataBaseMixin { int _loadNum = 0; int _minLoadNum = 1; late BuildContext context; late M model; bool _isDispose = false; bool get isDispose => _isDispose; int needLoadingRequestCount = 0; bool isLoading = false; Function()? showLoadingFun; Function? dismissLoadingFun; static bool isNeedCatchError = false; set minLoadNum(int value) { _minLoadNum = value; } set loadNum(int value) { _loadNum = value; } int get loadNum { return _loadNum; } void notifyPage() { if (!_isDispose) { loadNum++; print(">loadNum:$loadNum"); if (_loadNum >= _minLoadNum) { print(">notifyListeners"); notifyListeners(); } } } @override void init() { model = getIt.get(); setContext(context); setIsDispose(false); } void showLoading(bool isNeedLoading) { if (isNeedLoading) { needLoadingRequestCount++; if (!isLoading) { isLoading = true; if (showLoadingFun != null) { showLoadingFun!.call(); } showLoadingFun?.call(); } } } void dismissLoading(bool isNeedLoading) { if (isNeedLoading) { needLoadingRequestCount–; if (needLoadingRequestCount == 0) { isLoading = false; if (dismissLoadingFun != null) { dismissLoadingFun!.call(); } dismissLoadingFun?.call(); } } } /// 發起網路請求,同時處理異常,loading void sendRequest(Future future, FutureOr onValue(T value), {Function(Exception e)? error, bool isNeedLoading = false}) { showLoading(isNeedLoading); future.then((t) { dismissLoading(isNeedLoading); onValue(t); }); if (isNeedCatchError) { future.catchError((e) { dismissLoading(isNeedLoading); print("====>error:$e"); if (error != null) { error(e); } }); } } @override void dispose() { super.dispose(); _isDispose = true; setIsDispose(_isDispose); } } @injectable class LoginViewModel extends BaseViewModel { @factoryMethod LoginViewModel(); String loginName = “”; String psw = “”; ///登入 void login() { if (loginName.isEmpty) { showToast(“登入賬號不可為空”); } else if (psw.isEmpty) { showToast(“登入密碼不可為空”); } else { sendRequest(model.login(loginName, psw), (value) { if (value.errorCode == 0) { value.data?.let((it) { UserInfoSp.getInstance().uid = it.id ?? 0; UserInfoSp.getInstance().token = it.token ?? “”; UserInfoSp.getInstance().userName = it.username ?? “”; }); pop(); push(MainPage()); } else { showToast(value.errorMsg!); } }, isNeedLoading: true); } } }
以上就是 直播app原始碼,跳轉站外連結或平臺內部跳轉頁面實現的相關程式碼,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2855587/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播系統平臺搭建,點選連結跳轉到三方平臺或其他頁面
- 外鏈站內跳轉程式碼
- react跳轉url,跳轉外鏈,新頁面開啟頁面React
- 直播平臺開發,實現點選跳轉外部連結時的跳轉步驟
- app直播原始碼,RecycleView頁面的點選跳轉設計APP原始碼View
- 影片直播原始碼,uniapp頁面跳轉的幾種方法和區別原始碼APP
- js頁面跳轉的問題(跳轉到父頁面、最外層頁面、本頁面)JS
- APP直接跳轉設定頁面APP
- JavaScript頁面跳轉程式碼JavaScript
- vue頁面跳轉Vue
- Flutter頁面跳轉Flutter
- javascript 跳轉頁面JavaScript
- js頁面跳轉JS
- 點選連結跳轉到應用指定頁面
- js跳轉頁面方法(轉)JS
- 網頁跳轉(APP內/瀏覽器)網頁APP瀏覽器
- 直播帶貨原始碼,商品頁面跳轉顯示白底, 新增漸變動畫原始碼動畫
- PHP頁面跳轉如何實現延時跳轉PHP
- Flutter:如何跳轉頁面?Flutter
- JavaScript 頁面跳轉效果JavaScript
- router跳轉page頁面
- 成品直播原始碼,html頁面點選按鈕實現頁面跳轉的兩種方法原始碼HTML
- ios跳轉到通用頁面iOS
- uni-APP 新增頁面實現路由跳轉APP路由
- 短視訊平臺開發,點選連結、圖片自動跳轉到新的頁面
- top.location.href(最外層的頁面跳轉)
- 頁面連結跳轉--指定協議,半協議,無協議協議
- php怎麼直接跳轉頁面PHP
- PHP中實現頁面跳轉PHP
- 短視訊直播原始碼,遊客模式下使用正常功能跳轉到登入頁面原始碼模式
- 瀏覽器內外跳 -- 跳轉到指定應用瀏覽器
- javascript控制頁面(含iframe進行頁面跳轉)跳轉、重新整理的方法彙總JavaScript
- 華為AppGallery常用跳轉與連結詳解APP
- Flutter頁面保活及保持頁面跳轉位置Flutter
- JavaScript 阻止超連結跳轉JavaScript
- app直播原始碼,平臺登入頁面實現和修改密碼頁面實現APP原始碼密碼
- 日常問題 頁面跳轉 $_SESSION 失效Session
- 微信小程式頁面跳轉傳參微信小程式