wrap applink signer code and return blank result when catch error

This commit is contained in:
DASHU
2025-12-01 00:18:46 +08:00
parent b6f53b7fb1
commit a9552bd999

View File

@@ -88,6 +88,7 @@ class AppLinksService with PermissionCheckMixin {
}, (app, signer) async { }, (app, signer) async {
String? response; String? response;
try {
if (type == "sign_event") { if (type == "sign_event") {
var tags = eventObj["tags"]; var tags = eventObj["tags"];
Event? event = Event( Event? event = Event(
@@ -97,10 +98,9 @@ class AppLinksService with PermissionCheckMixin {
event = await signer.signEvent(event); event = await signer.signEvent(event);
if (event == null) { if (event == null) {
log("sign event fail"); log("sign event fail");
return; } else {
}
response = event.sig; response = event.sig;
}
} else if (type == "get_relays") { } else if (type == "get_relays") {
response = '{}'; response = '{}';
} else if (type == "get_public_key") { } else if (type == "get_public_key") {
@@ -114,22 +114,24 @@ class AppLinksService with PermissionCheckMixin {
} else if (type == "nip44_decrypt") { } else if (type == "nip44_decrypt") {
response = await signer.nip44Decrypt(thirdPartyPubkey, authDetail); response = await signer.nip44Decrypt(thirdPartyPubkey, authDetail);
} }
} catch (e) {
log("AppLinksService handleUri error: $e");
} finally {
sendResponse(callbackUrl!, response); sendResponse(callbackUrl!, response);
}
}); });
} }
Future<void> sendResponse(String callbackUrl, String? response) async { Future<void> sendResponse(String callbackUrl, String? response) async {
if (StringUtil.isBlank(response)) { if (callbackUrl == UNKNOWN_CODE && StringUtil.isNotBlank(response)) {
return;
}
if (callbackUrl == UNKNOWN_CODE) {
Clipboard.setData(ClipboardData(text: response!)); Clipboard.setData(ClipboardData(text: response!));
return; return;
} }
var url = callbackUrl + Uri.encodeComponent(response!); var url = callbackUrl;
if (StringUtil.isNotBlank(response)) {
url += Uri.encodeComponent(response!);
}
var uri = Uri.parse(url); var uri = Uri.parse(url);
// if (await canLaunchUrl(uri)) { // if (await canLaunchUrl(uri)) {
await launchUrl(uri); await launchUrl(uri);