SLComposeViewController with screenshot but not im

2019-02-22 20:03发布

问题:

I notice that Mobile Safari's Twitter and Facebook share adds a screenshot of the current page without actually sharing it, eg:

Im trying to duplicate this via SLComposeViewController, however calling the addImage: actually adds the UIImage to the tweet/facebook album (as expected).

Is there a way to just display the screenshot of the page without adding the image ?

Edit: Looks like SLComposeViewController conforms to UIAppearanceContainer however the UI_APPEARANCE_SELECTOR is not documented.

回答1:

Safari is previewing the screenshot to the website because it has it loaded and ready in on the screen, when you addURL: on the SLComposeViewController it doesn't resolve that URL and grab a preview.

Also when you addImage: that's exactly what it's doing, it's adding an image to your post, this isn't what you want, you just want to have a visual and not a safari logo/icon in place of the attachment indicating a link.

I can only say there is a private method on the SLComposeViewController class which is how Safari is adding a preview image for URLs added...

You should always get this in your app when sharing a URL:

That sucks, you should add a feature request (http://bugreport.apple.com) so that you can add your own preview here, maybe Apple will make that public in future iOS releases.