如何仅当用户访问我的应用程序中的特定网站时才显示警报?

How can I show an alert only if the user visits a specific website in my app?

如果用户访问 https://google.comhttps://duckduckgo.comhttps://bing.comhttps://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”的字符串。