Spotify应用程序选项卡-更新缓存

Spotify应用程序选项卡-更新缓存,spotify,Spotify,如果href包含spotifyURI,我尝试在选项卡播放列表中显示div。这将用于在选项卡下显示播放列表 一步一步这是我的问题: 单击播放列表选项卡,然后单击“我的播放列表1” href显示在playlists选项卡下的playlist容器中。(目前为止还很完美) 单击开始选项卡,然后单击播放列表选项卡 播放列表容器不再显示播放列表列表,而是再次显示。那么最后使用的url是缓存的 然后,如果再次单击播放列表选项卡,url将被“重置”,播放列表列表将显示,播放列表容器将隐藏 我想要4个。立即显示播

如果href包含spotifyURI,我尝试在选项卡播放列表中显示div。这将用于在选项卡下显示播放列表

一步一步这是我的问题:

  • 单击播放列表选项卡,然后单击“我的播放列表1”
  • href显示在playlists选项卡下的playlist容器中。(目前为止还很完美)
  • 单击开始选项卡,然后单击播放列表选项卡
  • 播放列表容器不再显示播放列表列表,而是再次显示。那么最后使用的url是缓存的
  • 然后,如果再次单击播放列表选项卡,url将被“重置”,播放列表列表将显示,播放列表容器将隐藏
  • 我想要4个。立即显示播放列表。 有没有办法重置或我遗漏了什么

    <script>
    $(document).ready(function() {
        sp = getSpotifyApi(1);   
        var m = sp.require("sp://import/scripts/api/models");
        updateTabs();
        m.application.observe(m.EVENT.ARGUMENTSCHANGED, updateTabs);
        function updateTabs() 
        {   
            console.log(m.application.arguments);
            var args = m.application.arguments;
            $('.section').hide();
            if (args[1] == "spotify") $("#playlist").html("args:"+args).show();
            else $("#"+args[0]).show();
        }
    });
    </script>
    
    <div id="playlist" class="section">Container for playlist content</div> 
    <div id="start" class="section">Welcome</div>  
    <div id="playlists" class="section"> 
    My <a href="spotify:app:tabtest:playlists:spotify:user:_username_:playlist_uri1">playlist1</a>
    My <a href="spotify:app:tabtest:playlists:spotify:user:_username_:playlist_uri2">playlist2</a>
    </div> 
    
    
    $(文档).ready(函数(){
    sp=getSpotifyApi(1);
    var m=sp.require(“sp://import/scripts/api/models”);
    updateTabs();
    m、 应用。观察(m.EVENT.ARGUMENTSCHANGED,updateTabs);
    函数updateTabs()
    {   
    log(m.application.arguments);
    var args=m.application.arguments;
    $('.section').hide();
    if(args[1]=“spotify”)$(“#playlist”).html(“args:+args.show();
    else$(“#”+args[0]).show();
    }
    });
    播放列表内容的容器
    欢迎
    我的
    我的
    

    非常感谢所有回复

    下面是我将如何继续使用JQuery

    首先,您需要使用Localstorage:

    var stor = sp.require("sp://import/scripts/storage");
    
    然后,例如,如果你得到一个播放列表列表,你可以像这样建立列表

    for (var i=0; i<d.playlists.length; i++) {
    $('#playlists').append('My <a id="p' + i + '"href="'+ d.playlists[i] +'">playlist1</a>');
    $('#playlists #p'+i).live('click', function(e) {
    e.preventdefault();
    stor.set('choosenplaylist', d.playlists[i]);
    });
    }
    

    好的,这是一个建议,需要对你的应用程序进行测试。

    我现在正在尝试,我可以重现你的错误(我猜这是一个错误,我认为标签应该替换url)

    但是,在修复之前,我的最佳猜测是在事件处理程序中捕获播放列表链接,并在取消后取消原始事件,然后用适当的播放列表视图替换内容


    我已经从事件处理程序中抽象出了实际的视图绑定,并添加了一个单击事件挂钩,该挂钩调用抽象视图绑定而不是“真实”的绑定,这还支持使用localstorage存储当前位置的应用程序的深度链接。谢谢您的回复。Localstorage嗯,我不知道如何使用它在第二次单击时更新url。你有什么建议吗?:)我提出了一个使用JQuery语法的解决方案。我想你是指缓存播放列表。我想在单击播放列表后删除缓存的url。我录制了mp4以显示“错误”。我的问题是:我必须单击“播放列表”选项卡两次才能返回列表。嗯,看来我误解了…非常感谢!我来看看:)我意识到我自己已经尝试过这个解决方案。它解决了一个问题,创造了另一个问题。单击播放列表后,后退功能停止工作,菜单播放列表停止工作。Spotify Tunigo应用程序似乎已经能够解决这个问题。。怎么做?我想你应该看看导航/历史事件,但我还没有测试过,我可以明天再看。。这个链接可能也很有意思:是的,也许可以。我假设查看Spotify集成指南时会受到限制:“避免历史记录。pushState()将新页面推送到堆栈上-如果您尝试这样做,您将得到一个安全异常。”但我会检查它。非常感谢,这解决了所有问题!我以为这是违反安全规定,但我想不是
    if (!stor.get('choosenplaylist')=='') {
    location.href=stor.get('choosenplaylist');
    }