mirror of
https://github.com/easychen/pushdeer.git
synced 2025-02-21 23:44:56 +08:00
去掉自己的长按手势弹复制菜单, 使用系统的
针对自建 SelfHosted 版创建单独的 Info.plist 文件; SelfHosted 版本去掉 Schemes 配置 设置添加查看官网入口
This commit is contained in:
parent
d58f6da266
commit
3f61db008f
@ -134,6 +134,8 @@
|
|||||||
526A1E6F2791E00400BA2177 /* PushDeerData.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = PushDeerData.xcdatamodel; sourceTree = "<group>"; };
|
526A1E6F2791E00400BA2177 /* PushDeerData.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = PushDeerData.xcdatamodel; sourceTree = "<group>"; };
|
||||||
526A1E722791E03900BA2177 /* Persistence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
|
526A1E722791E03900BA2177 /* Persistence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
|
||||||
526A1E7C2792B2A600BA2177 /* MessageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageModel.swift; sourceTree = "<group>"; };
|
526A1E7C2792B2A600BA2177 /* MessageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageModel.swift; sourceTree = "<group>"; };
|
||||||
|
527872C327CE0EE800AD79AD /* Info-SelfHosted.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-SelfHosted.plist"; sourceTree = "<group>"; };
|
||||||
|
527872C527CE105B00AD79AD /* Info-SelfHosted.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-SelfHosted.plist"; sourceTree = "<group>"; };
|
||||||
5287FF58278B3AAE00249A0E /* HToast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HToast.swift; sourceTree = "<group>"; };
|
5287FF58278B3AAE00249A0E /* HToast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HToast.swift; sourceTree = "<group>"; };
|
||||||
5292F4F52776BC7900B9A7BB /* PushDeer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushDeer.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
5292F4F52776BC7900B9A7BB /* PushDeer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushDeer.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
5292F4F82776BC7900B9A7BB /* PushDeerApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushDeerApp.swift; sourceTree = "<group>"; };
|
5292F4F82776BC7900B9A7BB /* PushDeerApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushDeerApp.swift; sourceTree = "<group>"; };
|
||||||
@ -260,6 +262,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
52450F442784A95D003652D8 /* Info.plist */,
|
52450F442784A95D003652D8 /* Info.plist */,
|
||||||
|
527872C327CE0EE800AD79AD /* Info-SelfHosted.plist */,
|
||||||
52E317DA279305BB000B8BB1 /* Localizable.strings */,
|
52E317DA279305BB000B8BB1 /* Localizable.strings */,
|
||||||
52E317D7279305BB000B8BB1 /* InfoPlist.strings */,
|
52E317D7279305BB000B8BB1 /* InfoPlist.strings */,
|
||||||
52450F362784822C003652D8 /* Service */,
|
52450F362784822C003652D8 /* Service */,
|
||||||
@ -303,6 +306,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
52B8CF6F277E0B46004CB680 /* Info.plist */,
|
52B8CF6F277E0B46004CB680 /* Info.plist */,
|
||||||
|
527872C527CE105B00AD79AD /* Info-SelfHosted.plist */,
|
||||||
52E317DD279305BB000B8BB1 /* InfoPlist.strings */,
|
52E317DD279305BB000B8BB1 /* InfoPlist.strings */,
|
||||||
52B8CF70277E0B46004CB680 /* PushDeerClip.entitlements */,
|
52B8CF70277E0B46004CB680 /* PushDeerClip.entitlements */,
|
||||||
5222E12F27B3F73C000B4223 /* PushDeerClip-SelfHosted.entitlements */,
|
5222E12F27B3F73C000B4223 /* PushDeerClip-SelfHosted.entitlements */,
|
||||||
@ -758,8 +762,8 @@
|
|||||||
"ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES;
|
"ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = PushDeer/Info.plist;
|
INFOPLIST_FILE = "PushDeer/Info-SelfHosted.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "PushDeer·自架版";
|
INFOPLIST_KEY_CFBundleDisplayName = PushDeer;
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "APP需要访问本地网络以供调试(仅在开发时)";
|
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "APP需要访问本地网络以供调试(仅在开发时)";
|
||||||
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "APP为您提供保存图片到相册的功能";
|
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "APP为您提供保存图片到相册的功能";
|
||||||
@ -802,8 +806,8 @@
|
|||||||
"APPCLIP=1",
|
"APPCLIP=1",
|
||||||
);
|
);
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = PushDeerClip/Info.plist;
|
INFOPLIST_FILE = "PushDeerClip/Info-SelfHosted.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "PushDeer·自架版";
|
INFOPLIST_KEY_CFBundleDisplayName = PushDeer;
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "APP需要访问本地网络以供调试(仅在开发时)";
|
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "APP需要访问本地网络以供调试(仅在开发时)";
|
||||||
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "APP为您提供保存图片到相册的功能";
|
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "APP为您提供保存图片到相册的功能";
|
||||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||||
@ -901,8 +905,8 @@
|
|||||||
"ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES;
|
"ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = PushDeer/Info.plist;
|
INFOPLIST_FILE = "PushDeer/Info-SelfHosted.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "PushDeer·自架版";
|
INFOPLIST_KEY_CFBundleDisplayName = PushDeer;
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "APP需要访问本地网络以供调试(仅在开发时)";
|
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "APP需要访问本地网络以供调试(仅在开发时)";
|
||||||
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "APP为您提供保存图片到相册的功能";
|
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "APP为您提供保存图片到相册的功能";
|
||||||
@ -944,8 +948,8 @@
|
|||||||
"APPCLIP=1",
|
"APPCLIP=1",
|
||||||
);
|
);
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = PushDeerClip/Info.plist;
|
INFOPLIST_FILE = "PushDeerClip/Info-SelfHosted.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "PushDeer·自架版";
|
INFOPLIST_KEY_CFBundleDisplayName = PushDeer;
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "APP需要访问本地网络以供调试(仅在开发时)";
|
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "APP需要访问本地网络以供调试(仅在开发时)";
|
||||||
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "APP为您提供保存图片到相册的功能";
|
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "APP为您提供保存图片到相册的功能";
|
||||||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||||
@ -1299,7 +1303,7 @@
|
|||||||
repositoryURL = "https://github.com/gonzalezreal/MarkdownUI";
|
repositoryURL = "https://github.com/gonzalezreal/MarkdownUI";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = upToNextMinorVersion;
|
kind = upToNextMinorVersion;
|
||||||
minimumVersion = 1.0.0;
|
minimumVersion = 1.1.0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
/* End XCRemoteSwiftPackageReference section */
|
/* End XCRemoteSwiftPackageReference section */
|
||||||
|
@ -24,8 +24,8 @@
|
|||||||
"repositoryURL": "https://github.com/gonzalezreal/MarkdownUI",
|
"repositoryURL": "https://github.com/gonzalezreal/MarkdownUI",
|
||||||
"state": {
|
"state": {
|
||||||
"branch": null,
|
"branch": null,
|
||||||
"revision": "94e07c111f1ef0a9c997d2fadac984e8bb7d7405",
|
"revision": "4c164300337a35d002188a83a878346819b203c0",
|
||||||
"version": "1.0.0"
|
"version": "1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -25,5 +25,7 @@ struct Env {
|
|||||||
static let wxAppid = "wx3ae07931d0555a24"
|
static let wxAppid = "wx3ae07931d0555a24"
|
||||||
/// 微信开发者Universal Link
|
/// 微信开发者Universal Link
|
||||||
static let wxUniversalLink = "https://vip.pushdeer.com/app/"
|
static let wxUniversalLink = "https://vip.pushdeer.com/app/"
|
||||||
|
/// PushDeer 官网地址
|
||||||
|
static let officialWebsite = "https://www.pushdeer.com"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
28
ios/PushDeer-iOS/PushDeer/Info-SelfHosted.plist
Normal file
28
ios/PushDeer-iOS/PushDeer/Info-SelfHosted.plist
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>PushDeer·自架版</string>
|
||||||
|
<key>CFBundleAllowMixedLocalizations</key>
|
||||||
|
<true/>
|
||||||
|
<key>LSApplicationQueriesSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>weixin</string>
|
||||||
|
<string>weixinULAPI</string>
|
||||||
|
</array>
|
||||||
|
<key>NSAppTransportSecurity</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSAllowsArbitraryLoads</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>NSBonjourServices</key>
|
||||||
|
<array>
|
||||||
|
<string>_adhp._tcp</string>
|
||||||
|
</array>
|
||||||
|
<key>UIBackgroundModes</key>
|
||||||
|
<array>
|
||||||
|
<string>remote-notification</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
@ -2,11 +2,6 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>LSApplicationQueriesSchemes</key>
|
|
||||||
<array>
|
|
||||||
<string>weixin</string>
|
|
||||||
<string>weixinULAPI</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleAllowMixedLocalizations</key>
|
<key>CFBundleAllowMixedLocalizations</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
@ -22,6 +17,11 @@
|
|||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
<key>LSApplicationQueriesSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>weixin</string>
|
||||||
|
<string>weixinULAPI</string>
|
||||||
|
</array>
|
||||||
<key>NSAppTransportSecurity</key>
|
<key>NSAppTransportSecurity</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSAllowsArbitraryLoads</key>
|
<key>NSAllowsArbitraryLoads</key>
|
||||||
|
@ -96,7 +96,7 @@ struct MessageContentView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.padding()
|
.padding()
|
||||||
#if targetEnvironment(macCatalyst)
|
//#if targetEnvironment(macCatalyst)
|
||||||
.contextMenu {
|
.contextMenu {
|
||||||
Button {
|
Button {
|
||||||
UIPasteboard.general.string = (messageItem.text ?? "") + "\n" + (messageItem.desp ?? "")
|
UIPasteboard.general.string = (messageItem.text ?? "") + "\n" + (messageItem.desp ?? "")
|
||||||
@ -105,22 +105,22 @@ struct MessageContentView: View {
|
|||||||
Label("复制",systemImage: "doc.on.doc")
|
Label("复制",systemImage: "doc.on.doc")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
//#endif
|
||||||
#if !targetEnvironment(macCatalyst)
|
//#if !targetEnvironment(macCatalyst)
|
||||||
.onLongPressGesture {
|
// .onLongPressGesture {
|
||||||
UIImpactFeedbackGenerator().impactOccurred()
|
// UIImpactFeedbackGenerator().impactOccurred()
|
||||||
showActionSheet = true
|
// showActionSheet = true
|
||||||
}
|
// }
|
||||||
.actionSheet(isPresented: $showActionSheet) {
|
// .actionSheet(isPresented: $showActionSheet) {
|
||||||
ActionSheet(title: Text("复制消息内容"), message: nil, buttons: [
|
// ActionSheet(title: Text("复制消息内容"), message: nil, buttons: [
|
||||||
.default(Text("复制"), action: {
|
// .default(Text("复制"), action: {
|
||||||
UIPasteboard.general.string = (messageItem.text ?? "") + "\n" + (messageItem.desp ?? "")
|
// UIPasteboard.general.string = (messageItem.text ?? "") + "\n" + (messageItem.desp ?? "")
|
||||||
HToast.showSuccess(NSLocalizedString("已复制", comment: ""))
|
// HToast.showSuccess(NSLocalizedString("已复制", comment: ""))
|
||||||
}),
|
// }),
|
||||||
.cancel()
|
// .cancel()
|
||||||
])
|
// ])
|
||||||
}
|
// }
|
||||||
#endif
|
//#endif
|
||||||
}
|
}
|
||||||
.fullScreenCover(item: $showUrl) {
|
.fullScreenCover(item: $showUrl) {
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import AuthenticationServices
|
|||||||
/// 设置界面
|
/// 设置界面
|
||||||
struct SettingsView: View {
|
struct SettingsView: View {
|
||||||
@EnvironmentObject private var store: AppState
|
@EnvironmentObject private var store: AppState
|
||||||
|
@State private var showUrl: URL?
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
BaseNavigationView(title: "设置") {
|
BaseNavigationView(title: "设置") {
|
||||||
@ -46,6 +47,15 @@ struct SettingsView: View {
|
|||||||
}
|
}
|
||||||
.padding(EdgeInsets(top: 18, leading: 20, bottom: 0, trailing: 20))
|
.padding(EdgeInsets(top: 18, leading: 20, bottom: 0, trailing: 20))
|
||||||
|
|
||||||
|
SettingsItemView(title: NSLocalizedString("PushDeer官网", comment: ""), button: NSLocalizedString("查看", comment: "")) {
|
||||||
|
if store.isUseBuiltInBrowser {
|
||||||
|
showUrl = URL(string: Env.officialWebsite)
|
||||||
|
} else {
|
||||||
|
UIApplication.shared.open(URL(string: Env.officialWebsite)!, options: [:], completionHandler: nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.padding(EdgeInsets(top: 18, leading: 20, bottom: 0, trailing: 20))
|
||||||
|
|
||||||
#if !targetEnvironment(macCatalyst)
|
#if !targetEnvironment(macCatalyst)
|
||||||
CardView {
|
CardView {
|
||||||
HStack{
|
HStack{
|
||||||
@ -74,6 +84,11 @@ struct SettingsView: View {
|
|||||||
store.userInfo = try await HttpRequest.getUserInfo()
|
store.userInfo = try await HttpRequest.getUserInfo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.fullScreenCover(item: $showUrl) {
|
||||||
|
|
||||||
|
} content: { url in
|
||||||
|
SafariView(url: url)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func userName() -> String {
|
func userName() -> String {
|
||||||
|
26
ios/PushDeer-iOS/PushDeerClip/Info-SelfHosted.plist
Normal file
26
ios/PushDeer-iOS/PushDeerClip/Info-SelfHosted.plist
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>PushDeer·自架版</string>
|
||||||
|
<key>CFBundleAllowMixedLocalizations</key>
|
||||||
|
<true/>
|
||||||
|
<key>NSAppClip</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSAppClipRequestEphemeralUserNotification</key>
|
||||||
|
<false/>
|
||||||
|
<key>NSAppClipRequestLocationConfirmation</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>NSAppTransportSecurity</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSAllowsArbitraryLoads</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>NSBonjourServices</key>
|
||||||
|
<array>
|
||||||
|
<string>_adhp._tcp</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
Loading…
x
Reference in New Issue
Block a user