Skip to content

Commit f8f1db3

Browse files
committed
优化下图片链接处理
1 parent e356729 commit f8f1db3

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

SwiftPamphletApp/Core/FundationFunction.swift

+20
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,26 @@ func validHTTPUrlStrFromUrlStr(urlStr: String) -> String {
116116
return httpsPrefix + urlStr
117117
}
118118

119+
// 网页的相对地址转绝对地址
120+
func urlWithSchemeAndHost(url: URL, urlStr: String) -> String {
121+
var schemeStr = ""
122+
var hostStr = ""
123+
if let scheme = url.scheme, let host = url.host {
124+
schemeStr = scheme
125+
hostStr = host
126+
}
127+
128+
if urlStr.hasPrefix("http") {
129+
return urlStr
130+
} else {
131+
var slash = ""
132+
if urlStr.hasPrefix("/") == false {
133+
slash = "/"
134+
}
135+
return "\(schemeStr)://\(hostStr)\(slash)\(urlStr)"
136+
}
137+
}
138+
119139
// MARK: - 文件 - 沙盒
120140
// 获取沙盒Document目录路径
121141
func getDocumentsDirectory() -> URL {

SwiftPamphletApp/InfoOrganizer/Info/EditInfoView.swift

+4-18
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ struct EditInfoView: View {
141141
}
142142
VStack {
143143
HStack {
144-
PhotosPicker(selection: $selectedPhotos, matching: .images) {
144+
PhotosPicker(selection: $selectedPhotos, matching: .not(.videos)) {
145145
Label("选择照片图片", systemImage: "photo.on.rectangle.angled")
146146
}
147147
.onChange(of: selectedPhotos) { oldValue, newValue in
@@ -315,31 +315,17 @@ struct EditInfoView: View {
315315
var imageUrls = [String]()
316316

317317
// 获取图集
318-
var schemeStr = ""
319-
var hostStr = ""
320-
if let scheme = url.scheme, let host = url.host {
321-
schemeStr = scheme
322-
hostStr = host
323-
}
318+
324319
do {
325320
let imgs = try soup.select("img").array()
326321
if imgs.count > 0 {
327322
let imgUrl = try imgs.randomElement()?.attr("src")
328323
if let okImgUrl = imgUrl {
329-
if okImgUrl.hasPrefix("http") {
330-
imageUrl = okImgUrl
331-
} else {
332-
imageUrl = "\(schemeStr)://\(hostStr)/\(okImgUrl)"
333-
}
324+
imageUrl = urlWithSchemeAndHost(url: url, urlStr: okImgUrl)
334325
}
335326
for elm in imgs {
336327
let elmUrl = try elm.attr("src")
337-
if elmUrl.hasPrefix("http") {
338-
imageUrls.append(elmUrl)
339-
} else {
340-
imageUrls.append("\(schemeStr)://\(hostStr)/\(elmUrl)")
341-
}
342-
328+
imageUrls.append(urlWithSchemeAndHost(url: url, urlStr: elmUrl))
343329
}
344330
}
345331
} catch {}

0 commit comments

Comments
 (0)