gpt4 book ai didi

ios - 打开事件而不显示 UIActivityViewController

转载 作者:IT王子 更新时间:2023-10-29 05:27:34 25 4
gpt4 key购买 nike

我希望能够在 scrollView 中包含社交图标,当单击它时,其功能与我在呈现 UIActivityViewController 后单击它们时的功能相同。 我不想呈现 UIActivityViewController。

我知道这不应该是可能的,但是一个名为 Yodel 的应用可以做到这一点(或类似的东西),我也想这样做。

点击 Yodel 中的图标与在 UIActivityViewController 中的操作完全相同,因此他们似乎以某种方式将其放入容器 View 中(?)

Here's a GIF showing it

enter image description here

以 Whatsapp 为例,我尝试了以下操作:

  1. 使用 Whatsapp API https://www.whatsapp.com/faq/en/iphone/23559013带有 URL 方案

        var whatsappURL = NSURL(string: "whatsapp://send?text=Hello%2C%20World!")!
    if UIApplication.sharedApplication().canOpenURL(whatsappURL) {
    UIApplication.sharedApplication().openURL(whatsappURL)
    }
  2. 使用 UIActivityViewController,但我希望它们都在 scrollView 中,如上图所示。

  3. 使用 UIWebView 打开 URL Scheme,希望它留在 UIWebView 中。

    var whatsappURL = NSURL(string: "whatsapp://send?text=Hello%2C%20World!")!
    if UIApplication.sharedApplication().canOpenURL(whatsappURL) {
    UIApplication.sharedApplication().openURL(whatsappURL)
    }

    self.view.addSubview(webview)
    webview.loadRequest(NSURLRequest(URL: NSURL(string: "whatsapp://send?text=Hello%2C%20World!")!))

所有这些解决方案都会打开另一个应用程序 - 我想仍然留在我的应用程序中。

知道如何实现吗?帮助将不胜感激:)

最佳答案

实际上我做的完全一样,但是这个解决方案还需要您实现端服务器以继续支持 AppStore 上弹出的新应用程序(无需在每次需要/想要向/从中添加/删除新应用程序时更新您的应用程序)列表)

第一:您需要决定要在其他应用上分享什么内容

第二:您需要找出应用程序使用的 URL Scheme,

instagram 示例 -> "instagram://user?username=your_username"

第三:现在是流程背后的逻辑

假设我想显示 facebook、twitter、slack 和 instagram,

让我们用相关的 URL 设置字典:

["facebook":"facebook://blablabla", "twitter":"twitter://blabla", "slack":"slack://blabla", "instagram":"instagram://blabla"]

您还需要保留应用程序的图标(本地或服务器/firebase/云)- 稍后显示在您的 ScrollView (水平 Collection View 或您决定使用的任何内容)上

4rd:您需要检查设备上是否安装了这些应用:

所以只需循环你的应用程序数组/字典(或者你决定保存你的信息并检查可用性的任何东西):

let instagramHooks = "instagram://user?username=your_username"
let instagramUrl = URL(string: instagramHooks)
if UIApplication.shared.canOpenURL(instagramUrl! as URL)
{
//The app are installed you can show her
} else {
//The app doesn't installed -> don't show it on the list
}

之后,你只需要将他们的图标放到 UICollectionView/UIScrollView 上,当用户点击图标时,你就可以打开该方案:

UIApplication.shared.open(instagramUrl!)

关于目标应用程序将如何显示对话框(例如 UIActivityViewController 操作或实际打开应用程序我现在不知道),但我相信您可以在这里找到可以帮助您的人

希望你明白我的步骤,如果不明白可以联系我获取更多解释

关于ios - 打开事件而不显示 UIActivityViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40074638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com