Я хочу реализовать свой собственный шаг ResearchKit, включая WebView, в котором кнопка дает возможность перейти к следующему шагу.Researchkit: Как перейти на следующий шаг вручную из UIWebView
ли поэтому возможно
1) инициирует переключение к следующему шагу вручную?
2) управляет результатом, получая некоторые данные из моего WebView?
Для целей обучения я создал следующие до сих пор, включая мою собственную ActiveStep:
import UIKit
import ResearchKit
class DemoView: UIWebView {
}
class DemoStepViewController : ORKActiveStepViewController {
override func viewDidLoad() {
super.viewDidLoad()
let demoView = UIWebView()
demoView.loadHTMLString("<html><body><p>Hello!</p></body></html>", baseURL: nil)
demoView.translatesAutoresizingMaskIntoConstraints = false
self.customView = demoView
self.customView?.superview!.translatesAutoresizingMaskIntoConstraints = false
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[demoView]-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["demoView": demoView]))
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[demoView]-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["demoView": demoView]))
}
}
class DemoStep : ORKActiveStep {
static func stepViewControllerClass() -> DemoStepViewController.Type {
return DemoStepViewController.self
}
}
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, ORKTaskViewControllerDelegate {
var window: UIWindow?
var taskResultFinishedCompletionHandler: (ORKResult -> Void)?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let activeStep = DemoStep(identifier: "webstep")
activeStep.title = "Demo Step"
var endStep = ORKCompletionStep(identifier: "endstep")
endStep.title = "Well done"
endStep.text = "thank you"
let task = ORKOrderedTask(identifier: "orderedtask", steps: [activeStep, endStep])
let taskViewController = ORKTaskViewController(task: task, taskRunUUID: nil)
taskViewController.delegate = self
taskViewController.outputDirectory = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String, isDirectory: true)
window?.rootViewController = taskViewController
return true
}
func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) {
taskResultFinishedCompletionHandler?(taskViewController.result)
taskViewController.dismissViewControllerAnimated(true, completion: nil)
}
}
Можете ли вы опубликовать этот вопрос на github? – Yuan
Хорошо, сделал это здесь: https://github.com/ResearchKit/ResearchKit/issues/742 Надеюсь, это был правильный путь ... – snailmensch
Я мог ответить на один из моих вопросов, который я здесь сделал: http: //stackoverflow.com/questions/31806199/creating-custom-orkstep-with-wkwebview/38051000#38051000 – snailmensch