Ich möchte meinen eigenen ResearchKit-Schritt implementieren, einschließlich einer WebView, in der eine Schaltfläche die Möglichkeit bietet, zum nächsten Schritt zu wechseln.Researchkit: So wechseln Sie manuell aus UIWebView zum nächsten Schritt
ist es daher möglich,
1) Manuelles Initiieren zum nächsten Schritt zu wechseln?
2) manipulieren Sie das Ergebnis, erhalten einige Daten von meinem WebView?
zu Lernzwecken habe ich bisher folgende, meine eigene ActiveStep einschließlich:
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)
}
}
Können Sie diese Frage auf dem GitHub? – Yuan
Ok, habe das hier: https://github.com/ResearchKit/ResearchKit/issues/742 Ich hoffe, das war der richtige Weg ... – snailmensch
Ich könnte Teil eins meiner Frage beantworten, die ich hier getan habe: http: //stackoverflow.com/questions/31806199/creating-custom-orkstep-with-wkwebview/38051000#38051000 – snailmensch