Я пытаюсь создать приложение TWA в Android Studio, которое могло бы работать со всеми нашими доменами и обеспечивать плавную навигацию между ними, но без идей. Проблема в том, что при просмотре в пределах одного домена все в порядке, кнопка «Назад» на телефоне возвращает к ранее просмотренной странице. Но как только вы переключаетесь на другой домен, похоже, что приложение реинициализируется, и кнопка «назад» не возвращает на страницу предыдущего домена. Вместо этого оно минимизирует приложение ...
Все домены содержат файлы цифровых активов в соответствующих папках, отпечатки пальцев в порядке, приложение отлично работает с каждым отдельным доменом, но продолжает действовать, как вы только что открыли его при попытке передатьиз одного домена в другой по ссылке.
Все домены добавляются в отдельные теги <data>
в фильтр намерений с action.view
и категориями DEFAULT
и BROWSABLE
в манифесте. Попытка добавления отношений в отчетах об активах к каждому из них, но безуспешно, чтобы получить желаемый результат.
Может быть, кто-то может заставить его работать? Будем благодарны за любые советы!
Спасибо!
Куски моего глупого кода новичка
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.domain.newsapp">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true">
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity
android:name="android.support.customtabs.trusted.LauncherActivity"
android:theme="@style/Theme.LauncherActivity"
android:label="@string/app_name">
<meta-data
android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="https://sub1.domain.ru/" />
<meta-data
android:name="android.support.customtabs.trusted.STATUS_BAR_COLOR"
android:resource="@color/colorPrimary" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https" android:host="sub1.domain.ru"/>
<data android:scheme="https" android:host="sub2.domain.ru"/>
<data android:scheme="https" android:host="sub3.domain.ru"/>
</intent-filter>
</activity>
</application>
</manifest>
res \ values \ strings. xml
<resources>
<string name="app_name">MyApp</string>
<string name="asset_statements">
[{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://sub1.domain.ru\"}
},{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://sub2.domain.ru\"}
},{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://sub3.domain.ru\"}
}]
</string>
</resources>
res \ values \ styles.xml
<resources>
<!-- Base application theme. -->
<style name="Theme.LauncherActivity" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>
build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "ru.domain.newsapp"
minSdkVersion 16
targetSdkVersion 28
versionCode 2
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.release
}
buildTypes {
release {
minifyEnabled false
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:+'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.github.GoogleChrome.custom-tabs-client:customtabs:91b4a1270b'
}
UPD Добавлен код из файлов
Также кажется, что это поведение, о котором я говорил, - это не повторная инициализация, а наложение с другим содержимым субдомена по умолчанию, которое открыто, но без панели действий, как в установленном PWA, и это приводит к проблеме, что это наложение не может быть закрыто для возврата кпредыдущий домен ... И я очень надеялся, что это может действовать как обычная вкладка браузера и открывать каждую ссылку в том же окне ...