Qt.openUrlExternally() иногда работает на Symbian^3, а иногда нет, почему?

У меня возникли трудности с Qt.openUrlExternally на Symbian^ 3. Иногда это работает, иногда нет, и я не могу найти закономерности в этом.

Похоже, у другого пользователя такая же проблема здесь.

Когда это не работает, фактическое поведение заключается в том, что веб-браузер открывается, ненадолго (на несколько секунд) появляется на переднем плане, а затем уходит в фоновый режим. Он все еще открыт, но URL-адрес не загружается.

Qt.openUrlExternally("http://www.stackoverflow.com") работает.

Qt.openUrlExternally("http://twitter.com/share?text=ZOMG") не удается. Сначала я пришел к выводу, что это означает, что любой URL-адрес с ? не работает, однако это неправильно, потому что...

Qt.openUrlExternally("http://twitter.com/intent/tweet?text=ZOMG") работает. Однако, кажется, это работает только для одного слова, потому что:

Qt.openUrlExternally("http://twitter.com/intent/tweet?text=Will%20this%20work") не удается.

Кто-нибудь сталкивался с подобной проблемой (в частности, с отправкой произвольного текста в Twitter, я полагаю), и что они с этим сделали?


person funkybro    schedule 09.08.2011    source источник


Ответы (1)


ОК, нашел ответ на этот вопрос на форуме Qt. Qt.openUrlExternally не нравятся URL-адреса, содержащие %20 в качестве экранированного пробела. + работает. (Это привлекло мое внимание к тому, что мое второе утверждение выше было неверным, http://twitter.com/share?text=ZOMG действительно работает).

Похоже, решение состоит в том, чтобы передать параметр URI через функцию Javascript encodeURIComponent() и заменить все полученные %20 на +.

person funkybro    schedule 09.08.2011