CustomBrowserKit 1.0

CustomBrowserKit 1.0

ky1vstar维护。



  • ky1vstar

CustomBrowserKit

CI Status Version License Platform

CustomBrowserKit是一个库,旨在为您的优秀应用用户提供除Safari外打开链接的功能。它是用Objective-C编写的,并扩展到Swift。

支持浏览器

CustomBrowserKit目前支持以下浏览器:

需求

  • Xcode 8.0+
  • iOS 8.0+
  • Swift 3.1+

安装

CustomBrowserKit可以通过CocoaPods获取。要安装它,只需将以下行添加到Podfile中。

pod 'CustomBrowserKit'

此外,从iOS 9.0开始,您必须声明您想要启动的外部应用的URL方案。您可以使用两种无需声明适当URL方案的浏览器:BKBrowserInAppSafariBKBrowserSafari。因此,如果您想使用其他浏览器,您必须在您的应用的Info.plist文件中添加LSApplicationQueriesSchemes 键。您不需要添加下面的所有方案,只需添加您想让用户使用的那些方案。但添加这两个方案对于有两个方案的浏览器非常重要。例如,如果您想使用Google Chrome,您必须声明 googlechromegooglechromes URL方案。

浏览器 URL方案
Google Chrome googlechrome
googlechromes
Firefox firefox
Opera opera
UC浏览器 ucbrowser
Puffin Web浏览器 puffin
puffins
Yandex浏览器 yandexbrowser-open-url

用法

确保导入了框架头文件:#import <CustomBrowserKit/CustomBrowserKit.h>(用于Objective-C)或 import CustomBrowserKit(用于Swift)。

获取浏览器信息

Objective-C

BKBrowser browser = BKBrowserFirefox;
NSString *browserName = BKBrowserGetName(browser); // @"Firefox"
UIImage *browserLogo = BKBrowserGetThumbnail(browser); // UIImage of size 100x100

Swift

let browser = BKBrowser.firefox
let browserName = browser.name // "Firefox"
let browserLogo = browser.thumbnail // UIImage of size 100x100

获取可用浏览器列表

Objective-C

for (NSNumber *wrappedBrowser in BKManager.availableBrowsers) {
BKBrowser browser = (BKBrowser)wrappedBrowser.intValue;
NSLog(@"%@ is available", BKBrowserGetName(browser));
}

Swift

for browser in BKManager.availableBrowsers {
print("\(browser.name) is available")
}

在特定浏览器中打开链接

Objective-C

NSURL *url = [NSURL URLWithString:@"https://google.com/"];

if ([BKManager openURL:url withBrowser:BKBrowserOpera]) {
NSLog(@"did open url successfully");
} else {
NSLog(@"did fail to open url");
}

Swift

let url = URL(string: "https://google.com/")!

if BKManager.open(url, with: .opera) {
print("did open url successfully")
} else {
print("did fail to open url")
}

需要时回退到另一个浏览器打开链接

Objective-C

NSURL *url = [NSURL URLWithString:@"https://google.com/"];

// BKManager will try to open URL in Opera. If Opera Mini turns out to not be installed or available, BKManager will try to open URL in Google Chrome.
if ([BKManager openURL:url withBrowser:BKBrowserOpera fallbackToBrowser:BKBrowserChrome]) {
NSLog(@"did open url successfully");
} else { // if both Opera Mini and Google Chrome are not available
NSLog(@"did fail to open url");
}

Swift

let url = URL(string: "https://google.com/")!

// BKManager will try to open URL in Opera. If Opera Mini turns out to not be installed or available, BKManager will try to open URL in Google Chrome.
if BKManager.open(url, with: .opera, fallbackTo: .chrome) {
print("did open url successfully")
} else { // if both Opera Mini and Google Chrome are not available
print("did fail to open url")
}

BKBrowser 保存到 NSUserDefaults

Objective-C

BKBrowser browser = BKBrowserUCBrowser;
NSUserDefaults *userDefaults = NSUserDefaults.standardUserDefaults;

// saving
[userDefaults setObject:BKBrowserGetIdentifier(browser) forKey:@"savedBrowser"];

// restoring
NSString *browserIdentifier = [userDefaults stringForKey:@"savedBrowser"];
BKBrowser savedBrowser;
if (browserIdentifier) {
savedBrowser = BKBrowserFromIdentifier(browserIdentifier);
} else {
savedBrowser = BKBrowserInAppSafari;
}

Swift

let browser = BKBrowser.ucBrowser
let userDefault = UserDefaults.standard

// saving
userDefault.set(browser.identifier, forKey: "savedBrowser")

// restoring
let savedBrowser: BKBrowser
if let browserIdentifier = userDefault.string(forKey: savedBrowser) {
savedBrowser = BKBrowser(identifier: browserIdentifier)
} else {
savedBrowser = .inAppSafari
}

示例

要运行示例项目,首先克隆存储库,然后从 Example 目录运行 pod install。示例项目包括 Objective-C 和 Swift 版本。

许可协议

CustomBrowserKit 在 MIT 许可协议下可用。更多信息请查看 LICENSE 文件。