Доверенное веб-действие Невозможно начать действие Служба компонента ComponentInfo должна быть явной: намерение
Я включил Trusted Web Activity в свое Android-приложение, когда запускаю TwalauncherActivity в качестве основного Activity. Приложение не открывается, оно внезапно останавливается и автоматически закрывается.
Я перешел по этой ссылке, чтобы добавить Trusted Web Activity.
Logcat: -
FATAL EXCEPTION: main
Process: com.therightdoctors.cathlab, PID: 2906
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.therightdoctors.cathlab/com.therightdoctors.cathlab.TwaLauncherActivity}: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=android.support.customtabs.action.CustomTabsService }
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=android.support.customtabs.action.CustomTabsService }
TwaLauncherActivity.java:-
package com.therightdoctors.dpmpatient;
import android.net.Uri;
import android.os.Bundle;
import android.support.customtabs.CustomTabsIntent;
import android.support.v7.app.AppCompatActivity;
public class TwaLauncherActivity extends AppCompatActivity
implements TwaSessionHelper.TwaSessionCallback {
private static final String TWA_ORIGIN = "https://dpmp.therightdoctors.com";
private static final String TARGET_URL = TWA_ORIGIN;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_twa_launcher);
Uri originUri = Uri.parse(TWA_ORIGIN);
TwaSessionHelper twaSessionHelper = TwaSessionHelper.getInstance();
twaSessionHelper.setTwaSessionCallback(this);
twaSessionHelper.bindService(this, originUri);
}
@Override
protected void onDestroy() {
super.onDestroy();
TwaSessionHelper twaSessionHelper = TwaSessionHelper.getInstance();
twaSessionHelper.setTwaSessionCallback(null);
}
public void openTwa() {
TwaSessionHelper twaSessionHelper = TwaSessionHelper.getInstance();
// Set an empty transition from TwaLauncherActivity to the TWA splash screen.
CustomTabsIntent customTabsIntent = twaSessionHelper.createIntentBuilder()
.setStartAnimations(this, 0, 0)
.build();
Uri openUri = Uri.parse(TARGET_URL);
twaSessionHelper.openTwa(this, customTabsIntent, openUri);
}
@Override
public void onTwaSessionReady() {
openTwa();
}
@Override
public void onTwaSessionDestroyed() {
}
@Override
public void onTwaOpened() {
finishAndRemoveTask();
}
}
1 ответ
Связанная демо-версия устарела (ссылка в настоящее время также не работает, так как демо было перенесено сюда)
Это текущий код для обновления LauncherActivity внутри библиотеки поддержки.
Последняя версия библиотеки поддержки, поддерживающей TWA, временно размещается в JitPack.
В ближайшее время он будет объединен с официальной библиотекой поддержки.