如何仅当用户访问我的应用程序中的特定网站时才显示警报?
How can I show an alert only if the user visits a specific website in my app?
如果用户访问 https://google.com
、https://duckduckgo.com
、https://bing.com
或 https://yandex.ru
,我如何向他们显示警报,但在他们访问任何内容时不显示任何内容其他网站?
我已经试过了,但是没有成功。 (这只是我的代码的一部分)
var isSearchEngine="NO"
if urlString!.contains("https://google.com") {
var isSearchEngine="YES"
} else {
var isSearchEngine="NO"
}
if urlString!.contains("https://duckduckgo.com") {
var isSearchEngine="YES"
} else {
var isSearchEngine="NO"
}
if urlString!.contains("https://yandex.ru") {
var isSearchEngine="YES"
} else {
var isSearchEngine="NO"
}
if urlString!.contains("https://bing.com") {
var isSearchEngine="YES"
} else {
var isSearchEngine="NO"
}
if isHub=="YES" {
Debug.log("Visited search engine website.")
let alert = UIAlertController(title: "Search Engine Detected", message: "The website you visited is a search engine.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil))
self.present(alert, animated: true)
} else {
Debug.log("Didn't visit a Search engine website.")
let alert = UIAlertController(title: "No search engine", message: "The website you visited isn't a search engine.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil))
self.present(alert, animated: true)
}
每次我 运行 我的应用程序使用此代码时,无论我访问哪个网站,我总是会收到“没有搜索引擎”的警告。总是“没有搜索引擎”。谁能帮我?非常感谢!
你的代码写的不合理。它一个接一个地执行一系列 if/else 表达式。例如,如果 URL 包含“https://google.com”,第一个 if/else 语句会将 isSearchEngine
设置为 true,然后是下一个 if/else语句会将其设置回 false。
重写。像这样的东西会起作用:
var isSearchEngine = false
if let notNilURLString = urlString {
let searchEngineURLs = [
"https://google.com",
"https://yandex.ru",
"https://duckduckgo.com"] // And so on
for searchEngineURL in searchEngineURLs {
if notNilURLString.contains(searchEngineURL)
isSearchEngine = true
}
}
}
第二个问题:当您检测到搜索引擎的 URL 时尝试设置 isSearchEngine = true
后,其余代码继续检查字符串是否为 Hub=="YES",完全忽略 isSearchEngine
.
的值
第三点:对true/false使用Bool
类型,而不是包含“YES”和“NO”的字符串。
如果用户访问 https://google.com
、https://duckduckgo.com
、https://bing.com
或 https://yandex.ru
,我如何向他们显示警报,但在他们访问任何内容时不显示任何内容其他网站?
我已经试过了,但是没有成功。 (这只是我的代码的一部分)
var isSearchEngine="NO"
if urlString!.contains("https://google.com") {
var isSearchEngine="YES"
} else {
var isSearchEngine="NO"
}
if urlString!.contains("https://duckduckgo.com") {
var isSearchEngine="YES"
} else {
var isSearchEngine="NO"
}
if urlString!.contains("https://yandex.ru") {
var isSearchEngine="YES"
} else {
var isSearchEngine="NO"
}
if urlString!.contains("https://bing.com") {
var isSearchEngine="YES"
} else {
var isSearchEngine="NO"
}
if isHub=="YES" {
Debug.log("Visited search engine website.")
let alert = UIAlertController(title: "Search Engine Detected", message: "The website you visited is a search engine.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil))
self.present(alert, animated: true)
} else {
Debug.log("Didn't visit a Search engine website.")
let alert = UIAlertController(title: "No search engine", message: "The website you visited isn't a search engine.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil))
self.present(alert, animated: true)
}
每次我 运行 我的应用程序使用此代码时,无论我访问哪个网站,我总是会收到“没有搜索引擎”的警告。总是“没有搜索引擎”。谁能帮我?非常感谢!
你的代码写的不合理。它一个接一个地执行一系列 if/else 表达式。例如,如果 URL 包含“https://google.com”,第一个 if/else 语句会将 isSearchEngine
设置为 true,然后是下一个 if/else语句会将其设置回 false。
重写。像这样的东西会起作用:
var isSearchEngine = false
if let notNilURLString = urlString {
let searchEngineURLs = [
"https://google.com",
"https://yandex.ru",
"https://duckduckgo.com"] // And so on
for searchEngineURL in searchEngineURLs {
if notNilURLString.contains(searchEngineURL)
isSearchEngine = true
}
}
}
第二个问题:当您检测到搜索引擎的 URL 时尝试设置 isSearchEngine = true
后,其余代码继续检查字符串是否为 Hub=="YES",完全忽略 isSearchEngine
.
第三点:对true/false使用Bool
类型,而不是包含“YES”和“NO”的字符串。