Как связать несколько HTML-страниц, находящихся в папке assets в Android?

#android #html #hyperlink

#Android #HTML #гиперссылка

Вопрос:

Я новичок в Android.

Я хочу отображать HTML-страницы в эмуляторе Android. Я поместил свой «test1.html «и «test2.html » файлы в папке «assets» и удалось отобразить «test1.html «файл в Android с помощью следующего кода.

 package com.example.helloandroid;

import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.os.Bundle;

public class Test extends Activity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WebView webview = new WebView(this);
        setContentView(webview);

        try {

            InputStream fin = getAssets().open("test1.html");
                byte[] buffer = new byte[fin.available()];
                fin.read(buffer);
                fin.close();
                webview.loadData(new String(buffer), "text/html", "UTF-8");


        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  

Теперь я хочу нажать кнопку или ссылку в «test1.html «файл и откройте «test2.html «файл.Как я могу связать эти две HTML-страницы?

Заранее спасибо.

Ответ №1:

Button или Link в test1.html должен просто работать как обычный HTML-файл. Убедитесь, что при указании пути для test2.html указан правильный путь по отношению к test1.html , поскольку они находятся в каталоге assets.

Отредактируйте свой код следующим образом

 <a href="file:///android_asset/test2.html">Next Page</a>
  

Комментарии:

1. Спасибо за ответ. Я тоже пробовал это. Но это выдает мне ошибку «Веб-страница недоступна». Есть идеи по поводу ошибки?

2. Какой путь вы указываете для test2.html файл?

3. <a href=»test2.html «> Следующая страница</ a> в «test1.html «страница

4. Я добавил код для вашей ссылки, где вы должны изменить свой test2.html путь к файлу. Если это решит вашу проблему, не забудьте принять ответ.

5. Это не работает. Нет ошибки или любого другого вывода. Я использую входной поток для передачи «test1.html «файл. Нужно ли мне создавать другой поток ввода для «test2.html «также? Если да, то как это следует сделать?

Ответ №2:

Я пытался сделать аналогичную вещь, когда я хотел загрузить 1 ресурс, который ведет к другому ресурсу. Проблема в том, что вам нужно извлечь оба набора, иначе вы получите сообщение об ошибке webpage not available. Итак, да, вам также нужно будет создать входной поток для test2.

Существуют другие способы извлечения ресурсов, отличные от использования входных потоков. Вам придется поиграть с созданием каталога в вашем apk и перемещением файла по определенному пути и использованием этого пути. Это немного сбивает с толку, но может помочь, если вы планируете загружать много локальных ресурсов в будущем.

Ответ №3:

Я не смог найти аккуратное решение, которое работает для всех устройств. Но я бы рекомендовал вам сначала скопировать файлы из ресурсов во внутренний каталог (getFilesDir()). А затем выполните

 webView.loadUrl("file://" getFilesDir() "/myHtml.html");