Is it possible to generate a 'share on Facebook' link that opens the native Facebook App on Android/iOS/mobile instead of the web share dialog?

后端 未结 3 1047
遥遥无期
遥遥无期 2020-12-04 17:37

Is it possible to have a share on Facebook link on a website that opens the share dialog in the native App?

Current behavio

相关标签:
3条回答
  • 2020-12-04 18:01

    I know it has been a couple of years, but for whom it may concern:
    Have a look at this answer; Xcode : sharing content via Action Sheet.

    Let me copy that answer overhere as well:

    Swift

    let shareText = "Hello, world!"
    if let image = UIImage(named: "myImage") {
        let vc = UIActivityViewController(activityItems: [shareText, image], applicationActivities: [])
        presentViewController(vc, animated: true, completion: nil)
    }
    

    Try links for tutorials

    • http://nshipster.com/uiactivityviewcontroller/
    • http://www.codingexplorer.com/add-sharing-to-your-app-via-uiactivityviewcontroller/
    • http://roadfiresoftware.com/2014/02/how-to-add-facebook-and-twitter-sharing-to-an-ios-app/
    0 讨论(0)
  • 2020-12-04 18:07

    As of now, there is no official way to achieve this. It could be implemented by Facebook though, forwarding their web share dialog using their custom URL scheme. So if you use the officially documented way to open this dialog you would get this functionality with no further changes as soon as it becomes available.

    The easiest way to use the official web share dialog, without any prerequisites, is to link to this URL:

    https://www.facebook.com/dialog/share?
        app_id=145634995501895
        &display=popup
        &href=URL_TO_SHARE
        &redirect_uri=RETURN_URL
    

    where you replace URL_TO_SHARE and RETURN_URL with the proper URL-encoded values. Or you include the Facebook JS-SDK and use the classical share button or other ways described in sharing on the web.

    Just for completeness: In native apps on iOS and Android it is possible to link to the Facebook app directly if the user has the Facebook app installed. See sharing from iOS or android. As this is not always the case you have to check using the respective platform's specific Facebook SDK and fallback to the web-based dialog as well.

    On a sidenote: I would highly discourage you from using the not officially documented URL-schemes registered by the Facebook app. While they might work if the website is visited from a device with an installed Facebook app, they become dead links or weird browser warnings on devices without the Facebook app installed, especially any PCs or Macs. Even if you check for all these cases, Facebook has already changed their URL-Schemes and might do so again at any time, breaking your link(s) or - maybe worse - leading to undefined behavior.

    0 讨论(0)
  • 2020-12-04 18:13

    https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share

    You could try this and let the user decide what native app to use when sharing your link.

    It opens the native share-via of the user's device

    const data = {
      title: document.title,
      text: 'Hello World',
      url: 'https://your_site_url',
    }
    
    const shareVia = window.navigator.share(data);
    
    <html>
     <button onClick={shareVia}>Share Me!</button>
    </html>
    
    0 讨论(0)
提交回复
热议问题