Compare commits
No commits in common. "ce6128a8274f95df5d1e0c7c7429aad0ac1cebd2" and "4ff88ab8bacdf6b8db633c52404e52f0635bedd6" have entirely different histories.
ce6128a827
...
4ff88ab8ba
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<application
|
||||
|
|
|
|||
|
|
@ -39,65 +39,6 @@ end
|
|||
|
||||
post_install do |installer|
|
||||
installer.pods_project.targets.each do |target|
|
||||
... # Here are some configurations automatically generated by flutter
|
||||
|
||||
# Start of the permission_handler configuration
|
||||
target.build_configurations.each do |config|
|
||||
|
||||
# You can enable the permissions needed here. For example to enable camera
|
||||
# permission, just remove the `#` character in front so it looks like this:
|
||||
#
|
||||
# ## dart: PermissionGroup.camera
|
||||
# 'PERMISSION_CAMERA=1'
|
||||
#
|
||||
# Preprocessor definitions can be found in: https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h
|
||||
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
|
||||
'$(inherited)',
|
||||
|
||||
## dart: PermissionGroup.calendar
|
||||
# 'PERMISSION_EVENTS=1',
|
||||
|
||||
## dart: PermissionGroup.reminders
|
||||
# 'PERMISSION_REMINDERS=1',
|
||||
|
||||
## dart: PermissionGroup.contacts
|
||||
# 'PERMISSION_CONTACTS=1',
|
||||
|
||||
## dart: PermissionGroup.camera
|
||||
'PERMISSION_CAMERA=1',
|
||||
|
||||
## dart: PermissionGroup.microphone
|
||||
'PERMISSION_MICROPHONE=1',
|
||||
|
||||
## dart: PermissionGroup.speech
|
||||
# 'PERMISSION_SPEECH_RECOGNIZER=1',
|
||||
|
||||
## dart: PermissionGroup.photos
|
||||
# 'PERMISSION_PHOTOS=1',
|
||||
|
||||
## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
|
||||
# 'PERMISSION_LOCATION=1',
|
||||
|
||||
## dart: PermissionGroup.notification
|
||||
# 'PERMISSION_NOTIFICATIONS=1',
|
||||
|
||||
## dart: PermissionGroup.mediaLibrary
|
||||
# 'PERMISSION_MEDIA_LIBRARY=1',
|
||||
|
||||
## dart: PermissionGroup.sensors
|
||||
# 'PERMISSION_SENSORS=1',
|
||||
|
||||
## dart: PermissionGroup.bluetooth
|
||||
# 'PERMISSION_BLUETOOTH=1',
|
||||
|
||||
## dart: PermissionGroup.appTrackingTransparency
|
||||
# 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',
|
||||
|
||||
## dart: PermissionGroup.criticalAlerts
|
||||
# 'PERMISSION_CRITICAL_ALERTS=1'
|
||||
]
|
||||
|
||||
end
|
||||
# End of the permission_handler configuration
|
||||
flutter_additional_ios_build_settings(target)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ class MyApp extends StatelessWidget {
|
|||
//默认专场动画
|
||||
defaultTransition: Transition.fade,
|
||||
//初始化路由页面
|
||||
initialRoute: (UserStore.to.token?.isNotEmpty ?? false) && UserStore.to.userInfoEntity.value != null ? Routes.startPage : Routes.loginPage,
|
||||
initialRoute: Routes.startPage,
|
||||
|
||||
/// 路由表
|
||||
getPages: AppPages.pages,
|
||||
|
|
|
|||
|
|
@ -46,17 +46,14 @@ class LoginLogic extends GetxController with RequestToolMixin {
|
|||
}else if(state.checkAgreementBool.value != true){
|
||||
ToastUtils.showError("请阅读并勾选相关协议");
|
||||
}else{
|
||||
try{
|
||||
ToastUtils.showLoading();
|
||||
BaseStructureResult<UserInfoEntity> res = await getClient().login(state.userNameController.text, md5.convert(utf8.encode(state.passwordController.text)).toString());
|
||||
ToastUtils.dismiss();
|
||||
if (null != res.data) {
|
||||
UserStore.to.setToken(res.data!.token);
|
||||
UserStore.to.setUserDetailInfo(res.data!);
|
||||
Get.toNamed(Routes.startPage);
|
||||
}
|
||||
}finally{
|
||||
ToastUtils.dismiss();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -71,17 +68,14 @@ class LoginLogic extends GetxController with RequestToolMixin {
|
|||
}else if(state.checkAgreementBool != true){
|
||||
ToastUtils.showError("请阅读并勾选相关协议");
|
||||
}else{
|
||||
try{
|
||||
ToastUtils.showLoading();
|
||||
BaseStructureResult<UserInfoEntity> res = await getClient().anonLogin(await DeviceInfo.getDeviceId(),state.nickNameCodeController.text, state.meetingCodeController.text);
|
||||
ToastUtils.dismiss();
|
||||
if (null != res.data) {
|
||||
UserStore.to.setToken(res.data!.token);
|
||||
UserStore.to.setUserDetailInfo(res.data!);
|
||||
Get.toNamed(Routes.meetingMainPage, arguments: {"roomNumber": state.meetingCodeController.text});
|
||||
}
|
||||
}finally{
|
||||
ToastUtils.dismiss();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import '../../common/models/common/base_structure_result.dart';
|
|||
import '../../common/models/meeting_room_info.dart';
|
||||
import '../../common/models/meeting_room_msg.dart';
|
||||
import '../../common/models/meeting_room_user.dart';
|
||||
import '../../utils/permission/PermissionService.dart';
|
||||
import '../../utils/permission_handler.dart';
|
||||
import '../../utils/toast_utils.dart';
|
||||
import 'meeting_main_state.dart';
|
||||
|
||||
|
|
@ -58,7 +58,6 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
|||
/// 1.获取会议室信息
|
||||
/// 2.获取会议室所有用户
|
||||
Future<void> mergeFetch() async {
|
||||
try{
|
||||
ToastUtils.showLoading();
|
||||
|
||||
var results = await Future.wait([
|
||||
|
|
@ -67,10 +66,9 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
|||
|
||||
getMeetingRoomInfo(results[0].data as MeetingRoomInfo);
|
||||
getMeetingRoomAllUser(results[1].data as List<MeetingRoomUser>);
|
||||
}finally{
|
||||
|
||||
ToastUtils.dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
/// 改变会议信息浮层显示状态
|
||||
void changeMeetingInfoState(bool isShow){
|
||||
|
|
@ -267,7 +265,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
|||
}
|
||||
|
||||
/// 启动共享屏幕
|
||||
/*Future<void> startScreenCapture() async {
|
||||
Future<void> startScreenCapture() async {
|
||||
debugPrint("wgs输出===:RTC-启动屏幕共享");
|
||||
state.isOpenShare.value = true;
|
||||
final shareShareUid = int.tryParse(UserStore.to.userInfoEntity.value!.screenShareId);
|
||||
|
|
@ -288,10 +286,10 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
|||
clientRoleType: ClientRoleType.clientRoleBroadcaster,
|
||||
));
|
||||
doHttpSetTvAnchor(UserStore.to.userInfoEntity.value!.screenShareId);
|
||||
}*/
|
||||
}
|
||||
|
||||
/// 停止共享屏幕
|
||||
/*Future<void> stopScreenCapture() async {
|
||||
Future<void> stopScreenCapture() async {
|
||||
debugPrint("wgs输出===:RTC-停止屏幕共享");
|
||||
state.isOpenShare.value = false;
|
||||
final shareShareUid = int.tryParse(UserStore.to.userInfoEntity.value!.screenShareId);
|
||||
|
|
@ -306,7 +304,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
|||
stopAllEffect: false
|
||||
));
|
||||
doHttpSetTvAnchor(UserStore.to.userInfoEntity.value!.uid);
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
/// ------------------------------------------------------------------------------signalR Socket相关
|
||||
|
|
@ -376,7 +374,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
|||
// 切换页面状态
|
||||
changePageState(0);
|
||||
// 停止共享屏幕
|
||||
// stopScreenCapture();
|
||||
stopScreenCapture();
|
||||
|
||||
|
||||
debugPrint("wgs输出===:Socket-关闭发言权限:观众");
|
||||
|
|
@ -597,7 +595,8 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
|||
/// 初始化声网SDK
|
||||
Future<void> initRtc() async {
|
||||
// 请求麦克风、摄像头权限
|
||||
PermissionService.requestPermissions();
|
||||
PermissionHandler.requestCameraPermission();
|
||||
PermissionHandler.requestMicrophonePermission();
|
||||
|
||||
// 创建 RtcEngine 对象
|
||||
state.rctEngine.value = createAgoraRtcEngineEx();
|
||||
|
|
@ -724,14 +723,14 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{
|
|||
},
|
||||
|
||||
// 获取设备权限出错回调
|
||||
/*onPermissionError: (PermissionType permissionType){
|
||||
onPermissionError: (PermissionType permissionType){
|
||||
debugPrint("wgs输出===:RTC-获取设备权限出错:$permissionType");
|
||||
if(permissionType == PermissionType.screenCapture){
|
||||
// 获取共享屏幕出错
|
||||
state.isOpenShare.value = false;
|
||||
stopScreenCapture();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -320,6 +320,17 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
)
|
||||
: Container()),
|
||||
|
||||
// 共享屏幕
|
||||
Visibility(
|
||||
visible: state.pageState.value == 2,
|
||||
child: null != state.rctEngine.value
|
||||
? MeetingMainShareComponent(
|
||||
rtcEngine: state.rctEngine.value!,
|
||||
channelId: state.roomNumber.value,
|
||||
remoteUid: state.remoteUid.value,
|
||||
)
|
||||
: Container()),
|
||||
|
||||
GestureDetector(
|
||||
child: Container(
|
||||
width: 180.w,
|
||||
|
|
@ -483,7 +494,7 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
),
|
||||
|
||||
/// 共享
|
||||
/*GestureDetector(
|
||||
GestureDetector(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
|
|
@ -514,7 +525,7 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
}
|
||||
}
|
||||
},
|
||||
),*/
|
||||
),
|
||||
|
||||
/// 成员
|
||||
GestureDetector(
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import 'package:permission_handler/permission_handler.dart';
|
|||
import 'dart:io';
|
||||
|
||||
import '../device_info.dart';
|
||||
import '../toast_utils.dart';
|
||||
|
||||
class AndroidPermissionHandler {
|
||||
Future<void> requestAllPermissions() async {
|
||||
|
|
@ -14,12 +13,6 @@ class AndroidPermissionHandler {
|
|||
await requestStoragePermission();
|
||||
await requestNotificationPermission();
|
||||
await requestPhonePermission();
|
||||
await requestMicrophonePermission();
|
||||
}
|
||||
|
||||
Future<void> requestCameraToMicrophonePermissions() async {
|
||||
await requestCameraPermission();
|
||||
await requestMicrophonePermission();
|
||||
}
|
||||
|
||||
Future<void> requestLocationPermission() async {
|
||||
|
|
@ -61,14 +54,11 @@ class AndroidPermissionHandler {
|
|||
Future<void> requestCameraPermission() async {
|
||||
PermissionStatus status = await Permission.camera.request();
|
||||
if (status.isGranted) {
|
||||
print("Android: 摄像头权限已授予");
|
||||
print("Android: 相机权限已授予");
|
||||
} else if (status.isPermanentlyDenied) {
|
||||
print("Android: 摄像头权限被永久拒绝,请前往设置开启");
|
||||
ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
|
||||
openAppSettings();
|
||||
print("Android: 相机权限被永久拒绝,请前往设置开启");
|
||||
} else {
|
||||
print("Android: 摄像头权限被拒绝");
|
||||
ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
|
||||
print("Android: 相机权限被拒绝");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -104,18 +94,4 @@ class AndroidPermissionHandler {
|
|||
print("Android: 电话权限被拒绝");
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> requestMicrophonePermission() async {
|
||||
PermissionStatus status = await Permission.microphone.request();
|
||||
if (status.isGranted) {
|
||||
print("Android: 麦克风权限已授予");
|
||||
} else if (status.isPermanentlyDenied) {
|
||||
print("Android: 麦克风权限被永久拒绝,请前往设置开启");
|
||||
ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
|
||||
openAppSettings();
|
||||
} else {
|
||||
print("Android: 麦克风限被拒绝");
|
||||
ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
import 'package:permission_handler/permission_handler.dart';
|
||||
|
||||
import '../toast_utils.dart';
|
||||
|
||||
class IosPermissionHandler {
|
||||
Future<void> requestAllPermissions() async {
|
||||
await requestLocationPermission();
|
||||
|
|
@ -10,12 +8,6 @@ class IosPermissionHandler {
|
|||
await requestStoragePermission();
|
||||
await requestNotificationPermission();
|
||||
await requestPhonePermission();
|
||||
await requestMicrophonePermission();
|
||||
}
|
||||
|
||||
Future<void> requestCameraToMicrophonePermissions() async {
|
||||
await requestCameraPermission();
|
||||
await requestMicrophonePermission();
|
||||
}
|
||||
|
||||
Future<void> requestLocationPermission() async {
|
||||
|
|
@ -41,14 +33,11 @@ class IosPermissionHandler {
|
|||
Future<void> requestCameraPermission() async {
|
||||
PermissionStatus status = await Permission.camera.request();
|
||||
if (status.isGranted) {
|
||||
print("iOS: 摄像头权限已授予");
|
||||
print("iOS: 相机权限已授予");
|
||||
} else if (status.isPermanentlyDenied) {
|
||||
print("iOS: 摄像头权限被永久拒绝,请前往设置开启");
|
||||
ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
|
||||
openAppSettings();
|
||||
print("iOS: 相机权限被永久拒绝,请前往设置开启");
|
||||
} else {
|
||||
print("iOS: 摄像头权限被拒绝");
|
||||
ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
|
||||
print("iOS: 相机权限被拒绝");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -82,18 +71,4 @@ class IosPermissionHandler {
|
|||
print("iOS: 电话权限被拒绝");
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> requestMicrophonePermission() async {
|
||||
PermissionStatus status = await Permission.microphone.request();
|
||||
if (status.isGranted) {
|
||||
print("iOS: 麦克风权限已授予");
|
||||
} else if (status.isPermanentlyDenied) {
|
||||
print("iOS: 麦克风权限被永久拒绝,请前往设置开启");
|
||||
ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
|
||||
openAppSettings();
|
||||
} else {
|
||||
print("iOS: 麦克风限被拒绝");
|
||||
ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'AndroidPermissionHandler.dart';
|
||||
import 'IosPermissionHandler.dart';
|
||||
|
||||
class PermissionService {
|
||||
static Future<void> requestPermissions() async {
|
||||
if (Platform.isIOS) {
|
||||
// 调用iOS权限处理逻辑
|
||||
await IosPermissionHandler().requestCameraToMicrophonePermissions();
|
||||
} else if (Platform.isAndroid) {
|
||||
// 调用Android权限处理逻辑
|
||||
await AndroidPermissionHandler().requestCameraToMicrophonePermissions();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:wgshare/utils/toast_utils.dart';
|
||||
|
||||
class PermissionHandler {
|
||||
|
||||
/// 摄像头权限
|
||||
static Future<void> requestCameraPermission() async {
|
||||
PermissionStatus status = await Permission.camera.request();
|
||||
if (status.isGranted) {
|
||||
debugPrint("wgs输出===:权限-摄像头权限已授予");
|
||||
} else if (status.isPermanentlyDenied) {
|
||||
debugPrint("wgs输出===:权限-摄像头权限被永久拒绝,请前往设置开启");
|
||||
ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
|
||||
openAppSettings();
|
||||
} else {
|
||||
debugPrint("wgs输出===:权限-摄像头权限被拒绝");
|
||||
ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
|
||||
}
|
||||
}
|
||||
|
||||
/// 麦克风权限
|
||||
static Future<void> requestMicrophonePermission() async {
|
||||
PermissionStatus status = await Permission.microphone.request();
|
||||
if (status.isGranted) {
|
||||
debugPrint("wgs输出===:权限-麦克风权限已授予");
|
||||
} else if (status.isPermanentlyDenied) {
|
||||
debugPrint("wgs输出===:权限-麦克风权限被永久拒绝,请前往设置开启");
|
||||
ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
|
||||
openAppSettings();
|
||||
} else {
|
||||
debugPrint("wgs输出===:权限-麦克风权限被拒绝");
|
||||
ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue