从URL Scheme获取参数 - Swift Xcode

时间:2016-03-16 09:53:30

标签: ios swift url-scheme viewdidload info.plist

我在Info.plist中设置了一个URL方案来调用我的应用,但是URL也解析了我需要读取的一串数据。

在找了一会儿之后我找到了 - http://www.informit.com/articles/article.aspx?p=2301787&seqNum=2

使用以下代码

var scheme: String!
var path: String!

var query: String!

func application(app: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {

  scheme = url.scheme
  path = url.path
  query = url.query

  return true
}

据说每当我通过URL调用应用程序时都会调用该函数,但是函数从未被调用过,我无法想象如果我放了函数,我必须将函数放在viewDidLoad中它在viewDidLoad中,每次应用程序启动时都会调用它。

我错了我假设 - 函数不需要在viewDidLoad中调用,或者是否有更好的方法从使用Info.plist创建方案的URL方案中获取数据

1 个答案:

答案 0 :(得分:5)

var scheme: String!
var path: String!

var query: String!

func application(app: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {

  scheme = url.scheme
  path = url.path
  query = url.query

  return true
}

需要在AppDelegate.Swift中,然后您可以通过执行 -

在viewcontroller中访问它
var appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate;

然后您可以通过执行 -

来调用变量
var something = pathScheme.appDelegate;