Как загрузить веб-контент на turbolinks-android

У меня есть веб-приложение, созданное с использованием Ruby on Rails и включающее Turbolinks 5, но в настоящее время мне нужно создать собственное приложение для Android, которое на самом деле разработано Basecamp.

В их GitHub репозитории есть пошаговая настройка, я следую этим шагам, потому что здесь (Google) недостаточно помощи для turbolinks-android основываясь на их учебнике, я настроен, но не загружаю какой-либо контент, как

#=> If I use Basecamp URL
private static final String BASE_URL = "https://basecamp.com";

Не меняя ничего, всегда показывая пустой экран

#=> My local project
private static final String BASE_URL = "http://localhost:3000";

Кроме того, ничего не меняется, показывая пустой экран

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">

  <com.basecamp.turbolinks.TurbolinksView
    android:id="@+id/turbolinks_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
</LinearLayout>

MainActivity.java

import com.basecamp.turbolinks.TurbolinksSession;
import com.basecamp.turbolinks.TurbolinksAdapter;
import com.basecamp.turbolinks.TurbolinksView;

Все так же, как их документация

Ценю, если любая помощь

Спасибо

1 ответ

Не уверен, если вы все еще ищете ответ. У меня была точно такая же проблема с turbolinks-android а также Rails 5.2 веб приложение.

Проблема была вызвана content_security_policy который включен по умолчанию в новейших версиях Rails. Я исправил это, комментируя контент в config/initializers/content_security_policy.rb файл.

Также хороший совет для будущих проблем - используйте adb logcat Команда с устройством, подключенным через USB. Он покажет вам, что именно вызывает ошибку.

Их примерный проект больше не работает. Вероятно из-за того, что он устарел. Но они используют его в своем приложении, так что он еще не мертв. Первой проблемой примера проекта является необходимость использования двух дополнительных библиотек:

implementation 'com.basecamp:turbolinks:1.0.9' // Turbolinks
implementation 'com.google.code.gson:gson:2.8.2' // Important addition 1
implementation 'org.apache.commons:commons-lang3:3.1' // Important addition 2

Кроме того, HTTP без SSL не работает, поэтому вам нужно использовать что-то вроде ngrok для туннелирования вашего соединения с HTTPS.

Вы можете посмотреть мой рабочий пример на Github

Другие вопросы по тегам