Открыть внешний сайт / адрес из приложения Sencha Touch - PullRequest
0 голосов
/ 15 ноября 2011

В моем приложении ListPanel определен следующим образом:

            //Create List View Using ListStore Created in data.js
            SpotiPod.listPanel = new Ext.List({
                id: 'artistList',
                store: SpotiPod.ListStore,
                itemTpl: '<div>{ArtistName}</div>',
                grouped: true,
                indexBar: true,
                listeners: {
                    itemtap: function(list, index){
                        var rec = list.store.getAt(index)
                        //Ext.Msg.alert(rec.get('ArtistName'), 'Load In Spotify?', function(){location.href = rec.get('SpotifyURI');});
                        Ext.Msg.show({
                            title: rec.get('ArtistName'),
                            msg: 'Load In Spotify?',
                            buttons: Ext.MessageBox.YESNO,
                            fn: showSpotify
                            });
                        function showSpotify(btn){
                            if(btn == 'yes'){
                                window.open(rec.get('SpotifyURI'));
                            }
                        }
                    }
                }
            });

Приложение представляет список исполнителей и должно предоставить ссылку на них с помощью URI Spotify. Если вы нажмете «да», чтобы загрузить spotify, оно должно открыть приложение и показать исполнителя. Приложение, как показано ниже, прекрасно работает в браузере и в мобильном сафари на iPhone. Однако, если я добавлю приложение на домашний экран и запусту его, оно больше не будет работать. Я получаю сообщение об ошибке: «Невозможно отобразить URL».

Кто-нибудь получил какие-либо идеи о том, как это можно изменить, чтобы правильно запустить ссылку?

Приветствия

Адам

1 Ответ

0 голосов
/ 22 июня 2012

Вот то, что я нашел на форумах Sencha, я не знаю, работает ли оно, поэтому извините, если это не так. Идея состоит в том, чтобы создать разметку привязки и смоделировать щелчок по ней вместо вызова метода window.open (). Вот код, делающий это, взятый из сообщения сенчи.

Ext.util.openLink = function(href) { 
  var link = document.createElement('a');
  link.setAttribute('href', href);
  link.setAttribute('target','_blank');
  var clickevent = document.createEvent('Event');
  clickevent.initEvent('click', true, false);
  link.dispatchEvent(clickevent);
 return false;
}

http://www.sencha.com/forum/showthread.php?130358-window.open()-from-toolbar-button-opens-window-from-list-item-a-new-tab&p=639938#post639938

...