我有来自百度地图的sharable here,我想用短网址字符串获取完整的网址。我们怎么做? 例如,如果我打开相同的链接' https://j.map.baidu.com/YwUSO'在重新加载后在浏览器中我得到一个完整的链接,例如 https://map.baidu.com/?shareurl=1&poiShareUid=ecdb75e513cf93e16fa3ccc0
所以,我想在IOS应用程序中做同样的事情,我应该在应用程序中获得完整的URL,我们如何实现这一点。
答案 0 :(得分:0)
对于iOS应用程序,我希望您使用UIWebView加载URL。您的类应符合UIWebViewDelegate。然后使用以下代码提取重定向的URL
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request mainDocumentURL];
NSLog(@"The Redirected URL is: %@", url);
// Return YES if you want to load the page, and NO if you don't.
return NO;
}
答案 1 :(得分:0)
您可以做什么,执行请求并检索URL
URLResponse
let urlStr = "https://j.map.baidu.com/YwUSO"
let url = URL(string: "https://j.map.baidu.com/YwUSO")!
URLSession.shared.dataTask(with: url) { (data, urlResponse, error) in
let expandedURL = urlResponse?.url?.absoluteString
print("expandedURL GET: \(expandedURL ?? "Oops, not URL")")
}.resume()
还可以做些什么,应该做一点优化就是做一个" HEAD"请求(不会下载违反" GET&#34的内容),但您需要使用URLRequest
而不仅仅是URL
并指定其{{1}转到" HEAD"。
httpMethod
注意我为了测试目的而严重打开(使用"!")。