Предположение, что "window.orientation == 0 означает портрет" применимо только к портретным устройствам. Большинство планшетов (которые в значительной степени соответствуют Honeycomb / Ice Cream Sandwich) основаны на альбомной ориентации, в этом случае 0 отображается в альбомной ориентации, а ROTATE_90 и ROTATE_270 - в портретной.
Ваш текущий код работал бы, если бы все устройства были либо портретными, либо сотовыми, исключительно взаимно. Однако, поскольку существуют сотовые устройства с портретной ориентацией, и Ice Ice Sandwich работает на обоих типах устройств, вам необходим более эффективный метод обнаружения.
Одним из вариантов является вставка логического значения в ваши res / values-port / bools.xml и res / values-land / bools.xml, которые вы обнаруживаете в родительском веб-просмотре и отправляете в javascript. Другой - просто проверить screen.width и screen.height и проверить, какой из них больше. Из всего вышесказанного наиболее идеальным сценарием было бы, поскольку вы в любом случае находитесь в веб-просмотре, делать то, что вы делаете с веб-страницей в любом случае, и придавать ей макет, который в любом случае выглядит хорошо, независимо от обнаруженной ориентации.