Seems simple, but unfortunately it's not.
In my next jump implementation, I'm going to do that height-as-input style, and be sure to include variability (small/large jumps). That control should make for a better game-feel, and support more flexible level design.