@phoenix124

Как решить ошибку с переходом по гиперссылкам в WebView?

Есть простой WebView который открывает текстовый документ. Код ниже,если нужно
public class ValkyriaViewActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_stigmata_view);
        WebView webView = findViewById(R.id.webView);
       webView.setBackgroundColor(Color.parseColor("#CCCCCC"));
        Intent intent = getIntent();
        //получаем строку и формируем имя ресурса
        String resName = "v" + intent.getIntExtra("mValkyrieName", 0) + "s" + intent.getIntExtra("mSuitName", 0);
        Log.i("name", resName);
        Context context = getBaseContext(); 

       
        String text = readRawTextFile(context, getResources().getIdentifier(resName,
                "raw", "хххх"));

        webView.loadDataWithBaseURL("file:///android_res/raw/",text,"txt/html","UTF-8",null);
    }

    
    private String readRawTextFile(Context context, int resId)
    {
        InputStream inputStream = context.getResources().openRawResource(resId);

        InputStreamReader inputReader = new InputStreamReader(inputStream);
        BufferedReader buffReader = new BufferedReader(inputReader);
        String line;
        StringBuilder builder = new StringBuilder();

        try {
            while (( line = buffReader.readLine()) != null) {
                builder.append(line);
                builder.append("\n");
            }
        } catch (IOException e) {
            return null;
        }
        return builder.toString();
    }
}

Код в текстовом документе
<a href="file:///android_res/raw/open/ххх">........</a>

Я хочу что бы в одном текстовом документе можно было открыть другой,вот ошибка которая выходит в Android Studio и приложение вылетает
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: ххх, PID: 27080
                  android.os.FileUriExposedException: file:///android_res/raw/v0s1.txt exposed beyond app through Intent.getData()


Находил в интернете решение с использованием provider_patchs,но мне кажется,оно мне не поможет,ведь текстовый файл открывает грубо говоря не студия,а другой текстовый документ.
Может есть какие нибудь способы обойти эту ошибку?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы