fix #616: support QR for uri link

This commit is contained in:
rustdesk 2023-12-03 22:33:52 +08:00
parent 7fe58afa9c
commit 93aac0bc99
2 changed files with 14 additions and 7 deletions

View File

@ -1964,14 +1964,16 @@ List<String>? urlLinkToCmdArgs(Uri uri) {
command = '--connect';
id = uri.path.substring("/new/".length);
} else if (uri.authority == "config") {
if (Platform.isAndroid || Platform.isIOS) {
final config = uri.path.substring("/".length);
// add a timer to make showToast work
Timer(Duration(seconds: 1), () {
importConfig(null, null, config);
});
}
return null;
} else if (uri.authority == "password") {
if (Platform.isAndroid) {
if (Platform.isAndroid || Platform.isIOS) {
final password = uri.path.substring("/".length);
if (password.isNotEmpty) {
Timer(Duration(seconds: 1), () async {

View File

@ -8,6 +8,7 @@ import 'package:qr_code_scanner/qr_code_scanner.dart';
import 'package:zxing2/qrcode.dart';
import '../../common.dart';
import '../../consts.dart';
import '../widgets/dialog.dart';
class ScanPage extends StatefulWidget {
@ -60,7 +61,11 @@ class _ScanPageState extends State<ScanPage> {
var reader = QRCodeReader();
try {
var result = reader.decode(bitmap);
if (result.text.startsWith(kUniLinksPrefix)) {
handleUriLink(uriString: result.text);
} else {
showServerSettingFromQr(result.text);
}
} catch (e) {
showToast('No QR code found');
}