iOS:我可以将 Safari 中的 URL 共享到我自己的应用程序吗?

Posted

技术标签:

【中文标题】iOS:我可以将 Safari 中的 URL 共享到我自己的应用程序吗?【英文标题】:iOS: can I share urls from Safari to my own app? 【发布时间】:2014-03-14 17:13:35 【问题描述】:

我想知道是否可以将 Safari 应用(或其他应用)的 url 共享给我自己的应用?我开发的应用程序允许用户存储或打开选择的 url。

我知道这适用于 android,但我也可以将其添加到 ios 中吗?

编辑: 我想打开我自己的应用程序来分享我当前在浏览器中访问的页面。如果您按下按钮分享我希望能够选择我的应用程序,例如在 Android 中:http://developer.android.com/training/basics/intents/filters.html

【问题讨论】:

【参考方案1】:

如果我理解正确,这将是您的解决方案:

首先,您必须在 info.plist 文件中注册您的 URL 方案。您要添加以下设置:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>scheme</string>
        </array>
        <key>CFBundleURLName</key>
        <string>com.companyidentifier.appname.scheme</string>
    </dict>
</array>

然后你必须为你的 AppDelegate 实现这个委托方法:

- (BOOL)application:(UIApplication *)application  openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
    // handle url here
    return YES;

【讨论】:

使用此代码,我的应用应该会出现在 Safari 的共享选项中吗? if([me isRight]) 返回是; else if ([you !isRight]) return FALSE; 。这仅允许您通过输入定义的 url sheme 从浏览器打开 url。我正在寻找的是一种从 Safari 的共享菜单中实际访问我的应用程序的方法。如Android中:developer.android.com/training/basics/intents/filters.html 我也想知道这是否可能。我想让我的应用程序显示在 Safari 的共享菜单中。因此,如果您在网页上并选择了分享按钮,我希望我的应用程序图标显示在那里。我也知道这在 Android 上是可能的。【参考方案2】:

详情请看:https://***.com/a/38037060/3033056

从 iOS 8 开始,您可以通过制作 Share Extension 应用程序来实现这一点。这是指向教程的链接ios8-share-extension-swift 可以提供帮助,您必须查看此链接以在原始应用程序和应用程序扩展程序之间共享数据sharing-code-between-original-ios-app-and-app-extension

【讨论】:

以上是关于iOS:我可以将 Safari 中的 URL 共享到我自己的应用程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

Cordova:将浏览器 URL 共享到我的 iOS 应用程序(Clipper ios 共享扩展)

如何将 cookie 从我的 ios 应用程序共享到移动 safari?

IOS8 beta 中的共享扩展

iOS URL Scheme,完成后返回 Safari

我可以在 ios 中通过 Application::openURL 方法使用 Safari 打开本地文件 url 吗?

在 WKWebView 和 Safari 之间共享会话