1、iOS请求URL中含有中文怎么办?
使用UTF-8编码一下就OK了
NSString* encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
2、iOS获取URL链接中的各个参数值:
例:http://example.com?param1=value1¶m2=param2
通过对一个合法的url(第一个参数用"?“连接,且url中只有一个”?",剩下的参数用"&"连接)进行字符串分割等处理实现URL中参数的提取
- (NSString *)getParamByName:(NSString *)name URLString:(NSString *)url{
NSError *error;
NSString *regTags=[[NSString alloc] initWithFormat:@"(^|&|\\?)+%@=+([^&]*)(&|$)", name];
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regTags
options:NSRegularExpressionCaseInsensitive
error:&error];
NSArray *matches = [regex matchesInString:url
options:0
range:NSMakeRange(0, [url length])];
for (NSTextCheckingResult *match in matches) {
NSString *tagValue = [url substringWithRange:[match rangeAtIndex:2]];
return tagValue;
return @"";
NSString *URLStr = @"http://example.com?param1=value1¶m2=param2";
NSLog(@"结果:",[self getParamByName:@"param1" URLString:URLStr])
结果:value1
2、一次性获取所有参数:
- (NSDictionary *)getParamsWithUrlString:(NSString*)urlString {
if(urlString.length==0) {
NSLog(@"链接为空!");
return @{};
NSArray* allElements = [urlString componentsSeparatedByString:@"?"];
NSMutableDictionary* params = [NSMutableDictionary dictionary];
if(allElements.count == 2) {
NSString* paramsString = allElements[1];
NSArray*paramsArray = [paramsString componentsSeparatedByString:@"&"];
if(paramsArray.count>=2) {
for(NSInteger i =0; i < paramsArray.count; i++) {
NSString* singleParamString = paramsArray[i];
NSArray* singleParamSet = [singleParamString componentsSeparatedByString:@"="];
if(singleParamSet.count==2) {
NSString* key = singleParamSet[0];
NSString* value = singleParamSet[1];
if(key.length>0|| value.length>0) {
[params setObject: value.length>0? value:@"" forKey:key.length>0?key:@""];
}else if(paramsArray.count == 1) {
NSString* singleParamString = paramsArray[0];
NSArray* singleParamSet = [singleParamString componentsSeparatedByString:@"="];
if(singleParamSet.count==2) {
NSString* key = singleParamSet[0];
NSString* value = singleParamSet[1];
if(key.length>0 || value.length>0) {
[params setObject:value.length>0?value:@""forKey:key.length>0?key:@""];
}else{
return params;
}else if(allElements.count>2) {
NSLog(@"链接不合法!链接包含多个\"?\"");
return @{};
}else{
NSLog(@"链接不包含参数!");
return @{};
NSString *url = @"https://www.jd.com/?device=app&appVersion=1.0.7&platform=iOS";
NSDictionary *dict = [self getParamsWithUrlString:url];
NSLog(@"结果:%@",dict);
结果:{
appVersion = "1.0.7";
device = app;
platform = iOS;
1、iOS请求URL中含有中文怎么办?使用UTF-8编码一下就OK了NSString* encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];2、iOS获取URL链接中的各个参数值:例:http://example.com?param1=value1&param2=param2通过对一个合法的url(第一个参数用"?“连接,且url中只有一个”?",剩下的参数用
- (NSString *)getParamByName:(NSString *)name URLString:(NSString *)url
NSError *error;
NSString *regTags=[[NSString alloc] initWithFormat:@"(^|&|\\?)+%@=+([^&]*)(&|$)"...
iOS 开发学习笔记 (1)中如何解析url中的数据url是统一的资源定位符,是资源的地址,可以通过url获得相应的资源。同样在url字符串中也包含了很多数据,在iOS开发中苹果也提供了一些接口对如url的这些数据进行解析。一、获得url中的域名和服务器名NSString *host= [url host];
NSLog(@"%@",host);二、获得url中的参数NSString *query
2 * initWithContentsOfFile:从文件获取内容
3 * initWithContentsOfURL:从URL获取内容
4 * writeToFile:写入文件
5 * atomically:原子性(文件写入的时候不会中断,在执行完毕之前不会被任何其它任务或事件中断。)
6 */
7 #i...
NSString *urlString = @"http://www.baidu.com:8080/share?username=zhouyu&password=12345&sex=男";
NSURLComponents *urlComponents = [[NSURLComponents al...
什么是通用链接?
通用链接是iOS9推出的一项新功能,如果你的应用(app)支持通用链接(Universal Link)之后,iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,那么点击链接会使用Safari打开网页。在iOS9以前,对于各种浏览器,Safari中唤醒app的需求,我们通常是只能使用scheme的方式。
为什么要突然改用通用链接的配置方式?
我们的项目中唤起第三方ap
[编辑].h文件
@property (strong,nonatomic)UIWebView *webView;
@property (strong,nonatomic)NSString *currentURL;
@property (strong,nonatomic)NSString *currentTitle;
-(NSDictionary *) parameterWithURL:(NSURL *) url {
NSMutableDictionary *parm = [[NSMutableDictionary alloc]init];
//传入url创建...
iOS 的右滑返回是必不可少的一项功能,否则用户体验会大打折扣,但是会经常会碰到某些页面右滑返回失效的情况,下面记录一下解决各种情况下右滑返回失效的方法:
1. 自定义返回按钮
如果页面上是自定义的返回按钮,那在viewDidLoad中加上下面这句话就可以:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationCont...
```swift
if let url = URL(string: "https://www.example.com?name=John&age=30") {
if let components = URLComponents(url: url, resolvingAgainstBaseURL: true) {
if let name = components.queryItems?.first(where: { $0.name == "name" })?.value {
print(name) // Output: John
if let age = components.queryItems?.first(where: { $0.name == "age" })?.value {
print(age) // Output: 30
在这个例子中,我们首先创建一个URL对象,然后使用URLComponents类解析URL。我们可以通过查询URLComponents的queryItems属性来获取HTML参数。在这个例子中,我们使用first(where:)方法和一个闭包来获取名为“name”和“age”的参数的值。