i think you can get around both limitations with some extra coding...never tried it, and just a thought, but...
you could probably "fake" a modal input dialog with a uipanel containing an uieditfield, that you can position manually within the app figure. The trick is to either disable all interactions in the base figure (if that's important to you) when the uipanel is made visible, or make the uipanel cover the entire app.
for an alternative to web(), maybe as simple as uihtml()...you can set the htmlsource, but i have no idea if that source can be arbitrary locations on the internet.