url.md
ngui/url
executable()
获取当前应用程序的二进制执行文件路径
- @ret {
String
}
Example:
// Prints:
// file:///var/containers/Bundle/Application/4F1BD659-601D-4932-8484-D0D1F978F0BE/test.app/test
console.log(url.executable());
documents([appendPath])
获取当前应用程序的文档存储路径
Example:
// Prints:
// file:///var/mobile/Containers/Data/Application/89A576FE-7BB9-4F26-A456-E9D7F8AD053D/Documents
console.log(url.documents());
// Prints 设置追加路径参数的结果:
// file:///var/mobile/Containers/Data/Application/89A576FE-7BB9-4F26-A456-E9D7F8AD053D/Documents/aa.jpeg
console.log(url.documents('aa.jpeg'));
temp([appendPath])
获取应用程序临时目录
resources([appendPath])
获取应用程序资源目录
fallback(path)
恢复路径为操作系统可以识别的路径,一般不需要使用该函数,除非直接调用非NGUI
提供的Native/C/C++函数
Example:
// Prints: /var/data/test.js
console.log(url.fallback('file:///var/data/test.js'));
cwd()
获取当前工作目录
- @ret {
String
}
chdir(path)
设置当前工作目录,成功后返回true
isAbsolute(path)
测试路径是否为一个绝对路径
Example:
// Prints:
// true
// true
// false
console.log(url.isAbsolute('/var/kk'));
console.log(url.isAbsolute('http://nodegui.org/'));
console.log(url.isAbsolute('index.jsx'));
resolve(path,[...partPaths])
格式化传入的路径为标准绝对路径
Example:
// Prints: http://nodegui.org/A/C/test.js
console.log(url.resolve('http://nodegui.org/home', "..", "A", "B", "..", "C", "test.js"));
// Prints:
// true
// file:///var/data/aaa/cc/ddd/kk.jpg
console.log(url.chdir('/var/data'));
console.log(url.resolve('aaa/bbb/../cc/.///ddd/kk.jpg'));
Class: URL
url与path处理类
URL.constructor([path])
构造函数,如果传入非法路径会抛出异常
- @arg
[path='']
{String
} 字符串路径,传入相对路径或决对路径
Example:
// cwd: file:///var/data
// Prints: file:///var/data/index.js
var uri = new URL('index.js');
console.log(uri.href);
// Prints: http://nodegui.org/index.html?args=0
var uri2 = new URL('http://nodegui.org/home/../index.html?args=0')
console.log(uri2.href);
// Prints:
// Error: Parse uri error, Illegal URL
new URL('http://nodegui.org:').href
Get: URL.href
获取uri完整的href,包括参数
- @ret {
String
}
Example:
// Prints: http://nodegui.org/
console.log(new URL('http://nodegui.org/').href);
Get: URL.filename
获取文件名称
- @ret {
String
}
// Prints: /aaa/bbbb/ccc/test.js
console.log(new URL('http://nodegui.org/aaa/bbbb/ccc/test.js').filename);
Get: URL.dirname
获取目录名称
Example:
// Prints: /aaa/bbbb/ccc
console.log(new URL('http://nodegui.org/aaa/bbbb/ccc/test.js').dirname);
Get: URL.search
获取uri查询参数
- @ret {
String
}
Example:
// Prints: ?a=A&b=B
console.log(new URL('http://nodegui.org/?a=A&b=B').search);
Get: URL.hash
获取hash参数
- @ret {
String
}
Example:
// Prints: #c=C&d=D
console.log(new URL('http://nodegui.org/?a=A&b=B#c=C&d=D').hash);
Get: URL.host
获取主机,返回一个带端口号的主机名称
- @ret {
String
}
Example:
// Prints: nodegui.org:80
console.log(new URL('http://nodegui.org:81/').host);
Get: URL.hostname
获取主机名称,不会返回端口号
- @ret {
String
}
Example:
// Prints: nodegui.org
console.log(new URL('http://nodegui.org:81/').host);
Get: URL.origin
获取uri起源,protocol+host
- @ret {
String
}
Example:
// Prints: http://nodegui.org:81
console.log(new URL('http://nodegui.org:81/host/index.html').host);
// Prints: file://
console.log(new URL('file:///var/data/index.html').host);
Get: URL.basename
获取基础文件名称
- @ret {
String
}
Example:
// Prints: index.html
console.log(new URL('file:///var/data/index.html').basename);
Get: URL.extname
获取文件扩展名称
- @ret {
String
}
Example:
// Prints: .html
console.log(new URL('file:///var/data/index.html').extname);
Get: URL.port
获取主机端口号,如果URL中没有定义端口号返回一个空字符串
Example:
- @ret {
String
}
// Prints: 81
console.log(new URL('http://nodegui.org:81').port);
// Prints 没有端口号会返回空字符串: ""
console.log(new URL('http://nodegui.org').port);
Get: URL.protocol
获取URL的协议类型字符串, 例如: 'http:'
|'https'
|'ftp:'
Get: URL.params
以对像方式返回查询参数集合
- @ret {
String
}
Example:
// Prints:
// {
// a: "100",
// b: "test"
// }
console.log(new URL('http://nodegui.org/?a=100&b=test').params);
Get: URL.hashParams
以对像方式返回Hash参数集合
- @ret {
Object
}
Example:
// Prints:
// {
// a: "200",
// b: "300"
// }
console.log(new URL('http://nodegui.org/#a=200&b=300').hashParams);
URL.getParam(name)
通过名称获取uri参数值
Example:
// Prints: ok
console.log(new URL('http://nodegui.org/?args=ok').getParam('args'));
URL.setParam(name, value)
设置URL查询参数键值对,并返回自己
URL.deleteParam(name)
通过名称删除URL查询参数
- @arg
name
{String
} - @ret {URL}
URL.clearParam()
删除URL中的所有查询参数
- @ret {URL}
URL.getHash(name)
URL.setHash(name, value)
URL.deleteHash(name)
URL.clearHash()
URL.relative(target)
返回与target
的相对路径
Example:
// Prints: ../A/B/C/test.js
var uri = new URL('http://nodegui.org/home/');
console.log(uri.relative('http://nodegui.org/A/B/C/test.js'));
// Prints: file:///var/data/A/B/C/test.js
var uri2 = new URL('http://nodegui.org/home/');
console.log(uri2.relative('file:///var/data/A/B/C/test.js'));