@@ -90,28 +90,48 @@ The `ShareLinkButton` in SwiftUI allows developers to customize the sharing expe
9090``` swift
9191import UIKit
9292
93+ // Step 1: Create a Custom UIActivityItemSource
9394class CustomItemSource : NSObject , UIActivityItemSource {
94- func activityViewControllerPlaceholderItem (_ activityViewController : UIActivityViewController) -> Any {
95- return " Default text"
96- }
97-
98- func activityViewController (_ activityViewController : UIActivityViewController, itemForActivityType activityType : UIActivity.ActivityType? ) -> Any ? {
99- if activityType == .postToTwitter {
100- return " Check out this cool feature!"
101- } else {
102- return " Here is something interesting to share."
103- }
104- }
105-
106- func activityViewController (_ activityViewController : UIActivityViewController, subjectForActivityType activityType : UIActivity.ActivityType? ) -> String {
107- return " Custom Subject"
108- }
95+ let text: String
96+ let url: URL
97+
98+ init (text : String , url : URL) {
99+ self .text = text
100+ self .url = url
101+ }
102+
103+ func activityViewControllerPlaceholderItem (_ activityViewController : UIActivityViewController) -> Any {
104+ return text
105+ }
106+
107+ func activityViewController (_ activityViewController : UIActivityViewController, itemForActivityType activityType : UIActivity.ActivityType? ) -> Any ? {
108+ return text
109+ }
110+
111+ func activityViewController (_ activityViewController : UIActivityViewController, subjectForActivityType activityType : UIActivity.ActivityType? ) -> String {
112+ return " Custom Subject"
113+ }
114+
115+ func activityViewController (_ activityViewController : UIActivityViewController, dataTypeIdentifierForActivityType activityType : UIActivity.ActivityType? ) -> String ? {
116+ return " public.url"
117+ }
118+
119+ func activityViewController (_ activityViewController : UIActivityViewController, thumbnailImageForActivityType activityType : UIActivity.ActivityType? , suggestedSize size : CGSize) -> UIImage? {
120+ return UIImage (systemName : " link.circle" )
121+ }
109122}
110123```
111124``` swift
112- ShareLinkButton (itemSource : CustomItemSource (), label : {
113- Text (" Share with Custom Source" )
114- })
125+ // Step 2: Create an instance of the custom activity item source
126+ let source = CustomItemSource (
127+ text : " Check out this amazing website!" ,
128+ url : URL (string : " https://www.example.com" )!
129+ )
130+
131+ // Step 3: Use the custom activity item source in ShareLink
132+ ShareLink (item : source) {
133+ Label (" Share" , systemImage : " square.and.arrow.up" )
134+ }
115135```
116136
117137## License
0 commit comments