Skip to content

Commit 12b145c

Browse files
committed
Update README.md
1 parent 6ce8ff0 commit 12b145c

File tree

1 file changed

+38
-18
lines changed

1 file changed

+38
-18
lines changed

README.md

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -90,28 +90,48 @@ The `ShareLinkButton` in SwiftUI allows developers to customize the sharing expe
9090
```swift
9191
import UIKit
9292

93+
// Step 1: Create a Custom UIActivityItemSource
9394
class 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

Comments
 (0)