İç bağlantılar, yayınlanan uygulamamdaki Android sürüm 3'te çalışmıyor gibi görünüyor. Uygulamam bu noktada Froyo'yu hedefliyor.Temel iç bağlantılar petek uygulamasında çalışmaz mı?
Uygulama, tonlarca telefonda iyi çalışıyor ancak yeni Galaxy Tab'ım dahili bağlantıları kaldıramıyor! Bu, bir html sayfası içinde bunları işleyebilir yani: dizin sayfasında yani bağlantı yok bir başka html dosyasından Ancak
<a name="faq" id="faq"></a>
:
<a href="#faq">Go to faq</a> <!-- goes to FAQ link -->
aynı sayfada alt etikete Goes
artık Honeycomb çalışır: Ben bir iç bağlantı giderseniz, Ayrıca<a href="mainpage.html#faq">FAQ</a> <!-- goes to error page -->
ve oradan başka bir sayfaya bir bağlantıyı izlemek, daha sonra geri düğmesine basın, siz (bir önceki webview sayfasına gitmek için geçersiz sayılmıştır) aynı hatayı al:
The webpage at file:///android_asset/folder/mainpage.html#faq might be temporarily down or it may have moved permanently to a new web address
WTF! Web sayfası sadece sayfadaydı, ama 1 saniye sonra geri döndün ve onu bulamıyorsunuz. Ne de başka bir html sayfası bağlantısını, ama hepsi değil sadece 3.1 (denemedim 3.0), 1.x, 2.x içinde
NOT çalışıyor olabilir: gördüğüm bu hemen hemen aynı soruyu: android_asset not working on Honeycomb? Ama varlık yolumda boşluk yok.
Webclient ile ve denemeyi denedim ve DOM ve önbellek ayarlarını boşuna denedim. İşte şu anda OnCreate ne var bir örnektir: Hata kullanıcıya şeffaf olacak şekilde
browser = new WebView(this);
// browser = (WebView) findViewById(R.id.webkit); // tried with XML and without
browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setPluginsEnabled(true);
// browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
// browser.getSettings().setUseWideViewPort(true);
browser.setBackgroundColor(Color.parseColor("#333333"));
browser.setInitialScale(1);
browser.getSettings().setBuiltInZoomControls(true);
final Activity MyActivity = this;
browser.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Make the bar disappear after URL is loaded, and changes
// string to Loading...
setProgressBarIndeterminateVisibility(true);
MyActivity.setTitle(" Loading . . . " + progress + "%");
MyActivity.setProgress(progress * 100); // Make the bar
if (progress == 100) {
setTitle(" APP TITLE YADA YADA");
setProgressBarIndeterminateVisibility(false);
}
}
});
browser.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url); // note I tried with and without overriding this
return true;
}
});
setContentView(browser);
browser.loadUrl("file:///android_asset/folder/page.html");
Ben aynı sorunu yaşıyorum: Şimdi, diğer cevap önerildiği üzere şimdi, kırık iç bağlantıları yakalamak onReceivedError yöntemini geçersiz ve eklemek istiyorum gibi bir şey yapmak çözüm ? Bu site benzer bir şey hakkında konuşmak gibi görünüyor: http://www.droidnova.com/honeycomb-webview-changes-and-issues,876.html, ama hiçbir çözüm sunmuyor ... –
Aylar sonra hala çözümüm yok Bunun için 3.x OS'yi tespit etmek ve iç bağlantıyı URL'den kesmek dışında. İşlevsellik engelleniyor, ancak yanlışlıktan kaçınıyor. – Mischa
Şu an neredeyse şeffaf bir çözüm olarak yapıyorum. URL başarısız olduğunda tetiklenen onReceivedError'da, temel web sayfası URL'sini almak için zencefilli kurabiye üzerinde herhangi bir os algılayabilir ve iç bağlantıyı keserim. Bunu web sayfasından yüklerim ve 1/2 saniyelik bir uyku gecikmesi yaparım. Daha sonra orijinal failURL'i dahili link ve voila ile yükledim, şimdi yükler. Görünüşe göre tarayıcı, var olan bağlantıya erişmeye çalışmaktan klasik hata yapıyor. Bu böcek üzerinde herhangi bir başkası varsa, ben tüm kulaklarım! – Mischa