我需要有关此问题的帮助。
我的应用程序中有一个与其他用户共享链接的功能,我需要做的是:
这可以在iOS中直接共享从浏览器到应用程序的链接。
需要帮助。
问候。
答案 0 :(得分:2)
从iOS 8开始使用共享App Extension可以完成此任务
我设法通过创建共享扩展程序应用程序(文件 - >新 - >目标 - >应用程序扩展程序)
然后从Targets-> Info我指定了对网址的支持
然后我花时间搜索在应用扩展程序中使用原始应用文件的方法,这篇文章对我有很大帮助Sharing code between original iOS App and App Extension
如果您使用的是cocoapods,这也可以帮助您https://stackoverflow.com/a/31989172/3033056,但要注意并非所有广告都可以在应用扩展程序中使用
的链接答案 1 :(得分:1)
使用URL Schemes确实可以做到这一点 http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-working-with-url-schemes/
答案 2 :(得分:1)
iOS自定义网址方案:
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的文档: 实现自定义URL方案
如果您的应用可以接收特殊格式的网址,则应在系统中注册相应的网址方案。 customURL方案是第三方应用程序可以相互通信的机制。应用程序通常使用自定义URLchemes将服务提供给其他应用程序。例如,地图应用支持用于显示特定地图位置的网址。
注册自定义网址架构
要为您的应用注册网址类型,请在应用的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;
}
答案 3 :(得分:0)
您可以通过app URL内的查询轻松地将数据传输到您的应用。
即您的应用程序URL为scheme://host/path?Query
,其中查询是您可以自定义和解析的数据。此网址传递给application:handleOpenURL
。点击此处了解详情http://www.idev101.com/code/Objective-C/custom_url_schemes.html