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,51 +88,53 @@ class AppLinksService with PermissionCheckMixin {
}, (app, signer) async { }, (app, signer) async {
String? response; String? response;
if (type == "sign_event") { try {
var tags = eventObj["tags"]; if (type == "sign_event") {
Event? event = Event( var tags = eventObj["tags"];
app.pubkey!, eventObj["kind"], tags ?? [], eventObj["content"], Event? event = Event(
createdAt: eventObj["created_at"]); app.pubkey!, eventObj["kind"], tags ?? [], eventObj["content"],
log(jsonEncode(event.toJson())); createdAt: eventObj["created_at"]);
event = await signer.signEvent(event); log(jsonEncode(event.toJson()));
if (event == null) { event = await signer.signEvent(event);
log("sign event fail"); if (event == null) {
return; log("sign event fail");
} else {
response = event.sig;
}
} else if (type == "get_relays") {
response = '{}';
} else if (type == "get_public_key") {
response = await signer.getPublicKey();
} else if (type == "nip04_encrypt") {
response = await signer.encrypt(thirdPartyPubkey, authDetail);
} else if (type == "nip04_decrypt") {
response = await signer.decrypt(thirdPartyPubkey, authDetail);
} else if (type == "nip44_encrypt") {
response = await signer.nip44Encrypt(thirdPartyPubkey, authDetail);
} else if (type == "nip44_decrypt") {
response = await signer.nip44Decrypt(thirdPartyPubkey, authDetail);
} }
} catch (e) {
response = event.sig; log("AppLinksService handleUri error: $e");
} else if (type == "get_relays") { } finally {
response = '{}'; sendResponse(callbackUrl!, response);
} else if (type == "get_public_key") {
response = await signer.getPublicKey();
} else if (type == "nip04_encrypt") {
response = await signer.encrypt(thirdPartyPubkey, authDetail);
} else if (type == "nip04_decrypt") {
response = await signer.decrypt(thirdPartyPubkey, authDetail);
} else if (type == "nip44_encrypt") {
response = await signer.nip44Encrypt(thirdPartyPubkey, authDetail);
} else if (type == "nip44_decrypt") {
response = await signer.nip44Decrypt(thirdPartyPubkey, authDetail);
} }
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);
// } // }
} }
} }