Sure, a number of such frameworks exist:
Which basically aim to let you do the app development in HTML / etc... They support what I think you are describing: a uniform API so that any app you write can use system resources and share common code for UI. The system specific pieces can usually be written as plugins (e.g., to do something specific to Android or iOS).
On the other side of things there's boot2gecko (perhaps the name has changed), which attempts to sit as a sort of platform running on top of the OS, providing all of these facilities.