我的应用程序中的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'));
}
}
}
}
});
该应用程序提供了一个艺术家列表,并应使用Spotify URI提供指向它们的链接,当您单击是以加载Spotify时,它应该打开应用程序并显示艺术家。下面的应用程序在浏览器和iPhone上的移动游戏中运行良好。但是,如果我将应用程序添加到主屏幕并运行它,那么它将不再有效。我收到“无法显示网址”的错误。
有没有人知道如何更改它以允许正确触发链接?
干杯
亚当
答案 0 :(得分:0)
这是我在Sencha论坛上找到的东西,我不知道它是否有效,如果没有,请原谅。我们的想法是创建一个锚标记并模拟它的点击,而不是调用window.open()方法。这是从sencha post获取的代码。
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;
}