2

我需要有关此问题的帮助。

我的应用程序中有一个功能可以与其他用户共享链接,我需要做的是:

  1. 在 Safari 浏览器中打开任何链接
  2. 直接在 Safari 浏览器上执行一些操作以在我的应用程序中共享该链接。

这是否可以在 iOS 中直接共享从浏览器到应用程序的链接。

需要这方面的帮助。

问候。

4

4 回答 4

3

从 iOS 8 开始使用 Share App Extension可以实现这个任务

我设法通过创建一个共享扩展应用程序来做到这一点(文件->新建->目标->应用程序扩展)

在此处输入图像描述

然后从 Targets->Info 我指定了对 Web URL 的支持

在此处输入图像描述

然后我花时间寻找在应用程序扩展中使用原始应用程序文件的方法,这篇文章帮助了我很多在原始 iOS 应用程序和应用程序扩展之间共享代码

如果您使用的是 cocoapods,这也可以帮助您https://stackoverflow.com/a/31989172/3033056但请注意,并非所有 pod 都允许在应用程序扩展中使用

这是一个教程链接http://www.appcoda.com/ios8-share-extension-swift/

于 2016-06-26T09:31:45.393 回答
1

这确实可以使用 URL 方案 http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-working-with-url-schemes/

  1. 查看发件人示例
  2. 查看接收器示例
于 2012-12-25T12:57:53.120 回答
1

iOS 自定义 url 方案:

html 示例:

<p>Run the app<a href='BundleURLSchemes://BundleURLName?param=1'>iPhone/iPad</a></p>

CFBundleURLSchemes- 包含 URL 方案名称的字符串数组,例如 http、mailto、tel 和 sms。

BundleURLName- 包含 URL 方案的抽象名称的字符串。为确保唯一性,建议您指定反向 DNS 样式的标识符,例如 com.acme.myscheme。您指定的字符串也用作应用程序的 InfoPlist.strings 文件中的键。键的值是人类可读的方案名称。

通过 Apple 的文档:Implementing Custom URL Schemes

如果您的应用可以接收特殊格式的 URL,则应向系统注册相应的 URL 方案。customURL 方案是一种机制,第三方应用程序可以通过该机制相互通信。应用程序经常使用自定义 URLschemes 向其他应用程序提供服务。例如,地图应用程序支持用于显示特定地图位置的 URL。

注册自定义 URL 方案

要为您的应用注册 URL 类型,请将CFBundleURLTypes密钥包含在您的应用Info.plist文件中。该CFBundleURLTypes键包含一个字典数组,每个字典都定义了应用程序支持的 URL 方案。

在您的 AppDelegate 中:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

    NSString *query = [url query];

//    NSLog(@"query->%@",query);//param=1
//    NSLog(@"host->%@",host);//BundleURLName
//    NSLog(@"resourceSpecifier->%@",resourceSpecifier);//BundleURLName?param=1

    if(![[url scheme] isEqualToString:@"BundleURLSchemes"])
        return NO;
    else{
        NSArray* paramsData =[query componentsSeparatedByString:@"="];

        NSLog(@"param->%@", paramsData[1]);
    }

     return YES;

}
于 2014-04-26T06:36:08.187 回答
0

您可以通过在应用程序 URL 中的查询轻松地将数据从 safari 传递到您的应用程序。即您的应用程序 URL 是scheme://host/path?Query查询是您可以自定义和解析的数据的地方。此 URL 被传递给application:handleOpenURL. 在此处查看更多信息http://www.idev101.com/code/Objective-C/custom_url_schemes.html

于 2014-04-25T09:43:02.020 回答