Ios 如何从URL方案中获取参数。

Ios 如何从URL方案中获取参数。,ios,iphone,objective-c,nsurl,url-scheme,Ios,Iphone,Objective C,Nsurl,Url Scheme,我在我的iPhone应用程序中使用URL方案,从一个页面我将用户切换到safari,从网页点击一个按钮,我将返回到应用程序 此时,web页面会传递一些参数,如 myapp://parameter=1 如何从我的应用程序中找到此参数? 我已在中放置了一个断点 -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)ur 但是,当返回时,它不会被调用。您可以使用此url主机查找参数,其中参数可以是任何

我在我的iPhone应用程序中使用URL方案,从一个页面我将用户切换到safari,从网页点击一个按钮,我将返回到应用程序 此时,web页面会传递一些参数,如

 myapp://parameter=1
如何从我的应用程序中找到此参数? 我已在中放置了一个断点

    -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)ur

但是,当返回时,它不会被调用。

您可以使用此
url主机
查找参数,其中参数可以是任何类型,在
http://
或自定义标记
自定义://
之后的任何内容都将被捕获到以下代码中

 NSString *urlParameter = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
如果有多个参数,则可以使用
componentsSeparatedByString
方法来分离参数

NSString *query = [url query];
NSArray *queryComponents = [query componentsSeparatedByString:@"&"];
现在在queryComponents中有了所有字符串,比如

param1=value
现在你可以得到这样的第一个值

NSArray *firstParam = [[queryComponents objectAtIndex:0] componentsSeparatedByString:@"="];

[firstParam objectAtIndex:0] is the name of param
[firstParam objectAtIndex:1] is value of the param

试试这个代码。即使url中有许多参数和值,这也很有用

NSURL *url = [NSURL URLWithString:@"xyz.com/result.php?data1=1123660801&data2=250072028055&presult=SUCCESS"];

NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
NSArray *queryItems = [components queryItems];

NSMutableDictionary *dict = [NSMutableDictionary new];

for (NSURLQueryItem *item in queryItems)
{
    [dict setObject:[item value] forKey:[item name]];
}

@Mert我在创建自定义链接时尝试过查询,但在查询中从未得到任何信息,可能是因为我在
customtag://
之后有自定义参数,所以如果您有这样的url,我更喜欢使用
[url host]
tomschema://myhost/?param=1&secondParam=2 它起作用了。这很常见,URL看起来像这样。我在应用程序中使用myhost执行不同的操作,如showAlert、showsomeview等。。。然后我可以检查您可以在您的-(BOOL)应用程序:(UIApplication*)应用程序handleOpenURL:(NSURL*)url方法中使用它做什么。你有这个URL,只是在这个代码>(BOOL)应用程序中使用:(UIAPPLY)应用程序HouelOpenURL:(NSURL*)URL< /Cuff>方法,只要在点击自定义链接时尝试NSLG值,它就会打印出<代码>参数= 1 < /Cord>你知道在香草C++中如何实现这一点吗?碳元素是否具有同等功能?如何启动应用程序?尝试在safari中键入url。这个方法是否返回YES?这应该是答案,只是让它更具体地回答问题。