サイトマップ 連絡先 最初に戻る 戻る 次へ進む
$Date: 2018-07-07 06:49:13 +0900 (2018/07/07 (土)) $
$Revision: 1347 $

swift 3 での OpenInChrome (OpenInChromeSwift)

OpenInChrome は ios アプリで Chrome を起動するクラスライブラリです。 OpenInChromeSwift (https://github.com/cezheng/OpenInChromeSwift) は https://github.com/GoogleChrome/OpenInChrome を Swift で書き直したものです。
それを https://github.com/cezheng/OpenInChromeSwift を fork して swift 3 対応したもの (https://github.com/m-tmatma/OpenInChromeSwiftswift3 ブランチ) です。

Pull Request

https://github.com/cezheng/OpenInChromeSwift/pull/1 で Pull Request を送っています。

利用するアプリケーション側の対応

info.plist の差分はこちら
  1. Xcode 8 で info.plist を開いて Add Row で任意の項目を追加する
  2. テキストエディタで info.plist を開いて追加した項目を LSApplicationQueriesSchemes に変更する
  3. Xcode 8 で LSApplicationQueriesSchemes のタイプを Arrayに変更する
  4. LSApplicationQueriesSchemes のところで Add Row を選択して子項目を追加する
  5. 追加した子項目の値を googlechrome に設定する
  6. + ボタンを押して項目を追加する。
  7. 追加した子項目の値を googlechromes に設定する
  8. + ボタンを押して項目を追加する。
  9. 追加した子項目の値を googlechrome-x-callback に設定する

利用するアプリケーションのコード

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel!
    
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        if OpenInChromeController.sharedInstance.isChromeInstalled() {
            self.label.text = "Installed"
        }
        else {
            self.label.text = "Not Installed"
        }
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func Open(_ sender: Any) {
        let url = URL(string: "http://www.google.co.jp")
        let callbackURL = URL(string: "opcsample://")
        if OpenInChromeController.sharedInstance.openInChrome(url!, callbackURL: callbackURL, createNewTab: true) {
            print("success")
        }
        else {
            print("fail")
        }
    }

}