startActivity
无论如何。如果你想打开属于另一个即时应用程序功能模块的活动,你只需要使用隐式意图。
用于在同一功能模块内导航(或者如果您的即时应用程序仅包含
one base feature
)明确的意图可以自由使用。
现在看起来Android即时应用程序在
Android 5.0或更高版本。然而,应用程序链接(我理解
即时应用程序依赖于)仅在6.0或更高版本中受支持
这是否意味着代码需要检查API级别并使用
不同的方法取决于版本(例如调用
星形触觉
是的,如果你想百分之百地确保你的用户不会看到歧义消除(也称为“选择器”)对话框
like this
,同时在应用程序的活动之间浏览(很可能你希望避免这种奇怪的用户体验)。如果您使用依赖注入,您可以在应用程序中使用一个用于导航的界面,然后为可安装应用程序和即时应用程序提供不同的实现。
interface Navigation {
void startActivityFromModuleA();
void startActivityFromModuleB();
â¦
}
class InstallableAppNavigation implements Navigation {
public void startActivityFromModuleA() {
// explicit intent
Intent intent = new Intent(context, ActivityFromModuleA.class);
context.startActivity(intent);
}
â¦
}
class InstantAppNavigation implements Navigation {
public void startActivityFromModuleA() {
// implicit intent
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://your.app.com/moduleA/smth"));
context.startActivity(intent);
}
â¦
}