0

残念ながら、私はこのサイトで解決策を見つけることができません。別の方法では、見たり使用したりしただけで、適切に機能しなかった可能性があります。この若者はあなたの助けを必要としています。本当にうまくいかないようです。

YouTubeチャンネルのプレイリストを表示するほとんどのページでYoutube-Apiを使用するこのAndroidアプリケーションがあります。

このように ( Playlist Youtube-Api Query )

<script type="text/javascript">
$(function () {   
var playlist = "https://gdata.youtube.com/feeds/api/users/******/playlists?v=2&alt=jsonc";
    $.getJSON(playlist,  function(response) {
      $.each(response.data.items, function(index, item) {
        $('#r_playlist').append('<div id="pl_title" class="playlists topBdr btmBdr" onclick=navlist_video("'+ item.id +'");><div class="pl_lb">' + item.title + '</div></div>');
      }); 
        $('.playlists').first().removeClass('topBdr');
        $('.playlists').last().removeClass('btmBdr');
    }); 
});
</script>

これが私のアプリケーションのレイアウトです(ホームページプレイリストページ

ホームページには、YouTube クエリを使用する注目の動画が表示されます。クエリの例を以下に示します。プレイリスト クエリに関しては、上に示しました。

https://gdata.youtube.com/feeds/api/videos?v=2&alt=jsonc&orderby=viewCount&max-results=5&q=xxxxxx

ここに画像の説明を入力

だから私の問題は、ナビゲーションメニューのホーム - >プレイリスト - >ホームに移動した後、私が経験している問題が表示されることです。そのため、Android アプリケーションを開くと、HOME ページから開始し、プレイリスト ページに移動すると、それも機能します。しかし、もう一度ホームページに移動すると、注目のビデオが表示されなくなり、プレイリストページに移動すると、プレイリストが表示されなくなりました。Android アプリケーションのデータを消去してアプリケーションを再度実行すると、エラーが繰り返されます。

ここに画像の説明を入力

ここに私のアンドロイドコードがあります。

package xxxxxx.xx;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class MainActivity extends Activity {

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView mWebView = null;
        mWebView = (WebView) findViewById(R.id.webtest);
        mWebView.getSettings().setPluginState(PluginState.ON);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.setWebViewClient(new CustomWebViewClient());
        try {
            mWebView.loadUrl("http://xxxxxxxx.com/android/index.html"); 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public class CustomWebViewClient extends WebViewClient
    {
            @Override
            public void onPageFinished(WebView view, String url) {
                if(url.endsWith("request")){
                   String redirectUrl = "http://xxxxxx.com/xxxxx/index.html";
                   view.loadUrl(redirectUrl);
                   return;
               } else if (url.startsWith("https://m.facebook.com/dialog/permissions.request")) {
                   String redirectUrl = "http://xxxxxxx.com/android/index.html";
                   view.loadUrl(redirectUrl);
                   return;                 
               }
                super.onPageFinished(view, url);
            }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        WebView mWebView = null;
        mWebView = (WebView) findViewById(R.id.webtest);
        if(event.getAction() == KeyEvent.ACTION_DOWN){
            switch(keyCode)
            {
            case KeyEvent.KEYCODE_BACK:
                if(mWebView.canGoBack() == true){
                    finish();
                    //mWebView.goBack();
                }else{
                    finish();
                }
                return true;
            }

        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

次に、プレイリストの私の Javascript コード:

<div id="r_playlist"></div>
<script type="text/javascript">
$(function () {   
var playlist = "https://gdata.youtube.com/feeds/api/users/xxxxxxx/playlists?v=2&alt=jsonc";
    $.getJSON(playlist,  function(response) {
      $.each(response.data.items, function(index, item) {
        $('#r_playlist').append('<div id="pl_title" class="playlists topBdr btmBdr" onclick=navlist_video("'+ item.id +'");><div class="pl_lb">' + item.title + '</div></div>');
      }); 
        $('.playlists').first().removeClass('topBdr');
        $('.playlists').last().removeClass('btmBdr');
    }); 
});
</script>

この問題を解決する方法についてのアイデアはありますか? 誰かが私を助けてくれたらうれしいです、ありがとう。

4

2 に答える 2

0

最後に、少し実験した後、戻ってアプリケーションを開いてアンインストールした後、キャッシュが保存されているなどの理由で機能しないことに気付きました。だから私がしたことはview.clearCache(true);、ページが読み込まれた後に置かれました。

public class CustomWebViewClient extends WebViewClient
{
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            view.clearCache(true);
        }
}
于 2013-01-03T05:14:49.013 に答える