From 55e5aff5933c3fda20928690604ade29438b58f4 Mon Sep 17 00:00:00 2001 From: Jeason Lee Date: Wed, 4 Sep 2019 10:48:30 +0800 Subject: [PATCH] Fix app url message menu items action bug --- WeChatTweak/WeChatTweak.m | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/WeChatTweak/WeChatTweak.m b/WeChatTweak/WeChatTweak.m index 1a52a7b..6b3b6a9 100755 --- a/WeChatTweak/WeChatTweak.m +++ b/WeChatTweak/WeChatTweak.m @@ -175,8 +175,8 @@ static void __attribute__((constructor)) tweak(void) { #pragma mark - AppUrlMessageMenu - (id)tweak_contextMenu { - MMMessageCellView *view = (MMMessageCellView *)self; NSMenu *menu = (NSMenu *)[self tweak_contextMenu]; + MMMessageCellView *view = (MMMessageCellView *)self; if (view.messageTableItem.message.messageType == MessageDataTypeAppUrl) { [menu addItem:[NSMenuItem separatorItem]]; [menu addItem:({ @@ -192,16 +192,28 @@ static void __attribute__((constructor)) tweak(void) { } - (void)tweakCopyUrl:(id)sender { - MMMessageCellView *cell = (MMMessageCellView *)self; - NSString *url = [cell.messageTableItem.message.msgContent tweak_subStringFrom:@"" to:@""]; - [[NSPasteboard generalPasteboard] clearContents]; - [[NSPasteboard generalPasteboard] setString:url forType:NSStringPboardType]; + NSString *url = [self _tweakMessageContentUrl]; + if (url.length) { + [[NSPasteboard generalPasteboard] clearContents]; + [[NSPasteboard generalPasteboard] setString:url forType:NSStringPboardType]; + } } - (void)tweakOpenUrlItem:(id)sender { + NSString *url = [self _tweakMessageContentUrl]; + if (url.length) { + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]]; + } +} + +- (NSString *)_tweakMessageContentUrl { MMMessageCellView *cell = (MMMessageCellView *)self; - NSString *url = [cell.messageTableItem.message.msgContent tweak_subStringFrom:@"" to:@""]; - [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]]; + NSString *content = cell.messageTableItem.message.msgContent; + if ([content containsString:@""]; + } else { + return [content tweak_subStringFrom:@"" to:@""]; + } } #pragma mark - Mutiple Instance