- Check multiple URLs asynchronously
- Check single URL asynchronously
- Check single URL synchronously
- Open URL in Safari only if it's safe
- UIApplication extension
- UIViewController extension
- SFSafariViewController compatible
SafeBrowsing is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SafeBrowsing'
Or you can install it with Carthage:
github "alexruperez/SafeBrowsing"
Or install it with Swift Package Manager:
dependencies: [
.package(url: "https://github.com/alexruperez/SafeBrowsing.git", from: "0.1.0")
]
Just enable Google Safe Browsing API and get your API key.
SafeBrowsing.apiKey = "YOUR_API_KEY_HERE"
You can easily customize threat types, platform types or threat entry types.
SafeBrowsing.clientId = "YOUR_CLIENT_ID" // By default your bundle identifier.
SafeBrowsing.clientVersion = "YOUR_CLIENT_VERSION" // By default your bundle short version.
SafeBrowsing.threatTypes = [.malware, .socialEngineering, .unwantedSoftware, .potenciallyHarmfulApplication]
SafeBrowsing.platformTypes = [.any]
SafeBrowsing.threatEntryTypes = [.url, .executable]
SafeBrowsing.isSafe([anURL, anotherURL]) { isSafe, error in
// Your code here
}
SafeBrowsing.isSafe(anURL) { isSafe, error in
// Your code here
}
if SafeBrowsing.isSafe(anURL) {
// Your code here
}
SafeBrowsing.safeOpen(anURL) { opened, error in
// Your code here
}
SafeBrowsing.safeOpenInSafariViewController(anURL, over: aViewController, animated: true) { opened, error in
// Your code here
}
Yes, you can use SafeBrowsing with UIApplication, just like open(_:options:completionHandler:) method works.
You also have all isSafe(_:) methods available with this extension.
UIApplication.shared.safeOpen(anURL) { opened, error in
// Your code here
}
UIApplication.shared.safeOpenInSafariViewController(anURL, over: aViewController, animated: true) { opened, error in
// Your code here
}
aViewController.safeOpenInSafariViewController(anURL, animated: true) { opened, error in
// Your code here
}
let testingURL = URL(string: "http://malware.testing.google.test/testing/malware/")!
SafeBrowsing.isSafe(testingURL) { isSafe, error in
print(error.debugDescription)
}
- Contributions are very welcome.
- Attribution is appreciated (let's spread the word!), but not mandatory.
alexruperez, contact@alexruperez.com
SafeBrowsing is available under the MIT license. See the LICENSE file for more info.