直播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源码,跳转站外链接或平台内部跳转页面实现的相关代码,更多内容欢迎关注之后的文章

直播app源码,跳转站外链接或平台内部跳转页面相关推荐

  1. 视频直播APP源码开发iOS音频播放流程

    视频直播APP源码开发iOS音频播放流程 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的, ...

  2. 一对一直播app源码开发,视频流延时解决方案

    在一对一直播app源码开发中, 摄像头帧数25帧, 一张图片: 16+40ms 需要去掉一半帧数 1256+1216 一共860ms 25帧需要1s以内处理 可以隔帧丢帧,如果丢10帧,解10帧,画面 ...

  3. 视频直播app源码,动态发布功能模块代码

    视频直播app源码中,不仅有"视频直播模块",还有"业务模块""消息模块"等等,其中,在动态发布功能里,选择图片后查看及删除的功能该怎么做呢 ...

  4. Android直播APP源码中排行榜功能如何实现

    刚进公司的时候,听技术人员说起直播APP源码中的"排行榜"功能,小编最先想到的是学生时期的成绩排行,上榜的沾沾自喜到下次考试,下榜的哭哭啼啼,其实就算上榜也并没有什么实质性的奖励, ...

  5. 扫盲!直播app源码搭建直播平台为什么要用到ShareSDK

    接触了很多搭建直播平台的客户,在跟客户对接直播平台搭建部署资料时,很多客户都对ShareSDK搞不明白,不知道具体是做什么用的,即使知道有这样一个服务,但对于ShareSDK在直播app源码搭建部署时 ...

  6. 视频直播APP源码,通过css控制div内容展开更多/收起效果

    视频直播APP源码,通过css控制div内容展开更多/收起效果 一. 实现思路 需要设置一个变量控制展开 / 收起效果 提前写好最高高度的class样式,超出这个高度多余内容会隐藏 只有在列表数据长度 ...

  7. 直播app源码,matlab 色彩布局描述符

    直播app源码,matlab 色彩布局描述符 %color layout descriptor (CLD) %im = imread('cs.jpg'); function result = CLD( ...

  8. 双子星IPTV桌面APK源码 网络电视机顶盒直播APP源码 带php后台

    介绍: 后台添加多格式在线直播源 带后台搭建视频教程 双子星IPTV桌面APK源码 网络电视机顶盒直播APP源码 带php后台 再手机上面即可看直播电视 电影 简单方便 网盘下载地址: http:// ...

  9. 一对一直播app源码,Aandroid动态切换主题色

    一对一直播app源码,Aandroid动态切换主题色实现的相关代码 点击按钮变量存储切换状态: override fun onClick(v: View?) {when (v?.id) {R.id.b ...

  10. Android健身APP源码 | 寻找C站宝藏

    Android健身APP源码 | 寻找C站宝藏 #有奖征文|寻找C站"宝藏"# 推荐类型:[下载资源] 资源链接: 一个Android健身APP源码 简介 一款使用Android平 ...

最新文章

  1. 桌面虚拟化之呼叫中心语音应用
  2. 路径名导致的异常:javax.imageio.IIOException: Can‘t read input file!
  3. Java知多少(完结篇)
  4. 《设计模式系列》---工厂方法
  5. background image
  6. ssl提高组周六备考赛【2018.10.27】
  7. 【LeetCode笔记】114. 二叉树展开为链表(Java、递归)
  8. etabs数据_etabs使用经验
  9. uml 时序图_面向对象设计与统一建模语言UML
  10. 蓝桥杯2019年第十届C/C++省赛B组第八题-等差数列
  11. 力扣题目系列:605. 种花问题
  12. hdoj1290切球形蛋糕(递推和划分问题)
  13. 如何搭建一个自己的网站-项目篇
  14. 《老罗Android开发视频教程》更新
  15. 手机开热点但是电脑一直连接不上_电脑连接手机热点无法上网的三种解决方法...
  16. 什么是VIE:Variable Interest Entities
  17. python如何拼读英语单词怎么写_如何拼读英语单词
  18. 中国车联网行业市场现状分析及投资趋势预测报告2022-2028年
  19. 基于python中jieba包的中文分词中详细使用(一)
  20. 银行信贷管理系统的客户关系管理子模块

热门文章

  1. php购物网站毕业论文,基于PHP的购物网站的设计与开发
  2. 同济线性代数教材(第五版)-第1章 行列式
  3. 网站商业计划书实例(商业网站策划书实例)
  4. 软件测试第三章课后习题
  5. 效果器的使用技巧-与调音台的无缝连接
  6. java获取.py文件值_Java File文件处理 读文件
  7. dos命令大全DOS命令图解教程
  8. 【为什么需要FabricPath】FabricPath是思科 Nexus交换机上的一项技术特性,其目标是在保证二层环境的前提下,提高性能。来看看为什么数据中心需要FabricPath?
  9. Android studio配置Google play服务
  10. 中国移动微处理器CM32M101A介绍