我正在使用 WebView 在 Android 上加载我的自适应网站。
我已经使用Android Studio的 应用链接助手 启用了 深层链接 。问题是所有URL(主页,帖子,页面)都只能在 主页面 中启动应用程序,而不是它们的相应链接。
我的帖子网址结构为https://www.example.com/2019/05/samplepost.html
我的页面网址结构为https://www.example.com/page
我尝试了许多在这里找到的方法,包括Shanil Soni Enable deep linking for android for various structured urls提出的方法。但是直到我诉诸 App Link Assistant 。
这是我的manifest.xml生成的意图过滤器
<intent-filter>
<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="www.example.com"
android:pathPattern="/*" />
</intent-filter>
该工具在MainActivity.java中添加了3行。紧接着“ //注意:这是自动生成的,用于处理应用程序链接。”
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CheckFullScreen();
setContentView(R.layout.activity_main);
SetupNotifications();
CheckFirstTimeWelcome();
InitializeViews();
SetupAds();
SetupToolbar();
SetupWebView();
SetupSwipeToRefresh();
SetupDrawerNavigation();
// ATTENTION: This was auto-generated to handle app links.
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();
}
我在这里遵循的https://developer.android.com/studio/write/app-link-indexing开发人员android指南确实显示代码不完整,但是我无法使用如下所示的其他代码,因为它们已链接到本地应用程序内容,并且我试图进入url启动了应用程序。
下面是另一个代码示例;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
handleIntent(getIntent());
}
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleIntent(intent);
}
private void handleIntent(Intent intent) {
String appLinkAction = intent.getAction();
Uri appLinkData = intent.getData();
if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){
String recipeId = appLinkData.getLastPathSegment();
Uri appData = Uri.parse("content://com.recipe_app/recipe/").buildUpon()
.appendPath(recipeId).build();
showRecipe(appData);
}
}
使用在Enable deep linking for android for various structured urls上找到的更正,我试图在MainActivity.java上编辑自动生成的代码 从这个
// ATTENTION: This was auto-generated to handle app links.
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();
对此
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
String link = intent.getDataString();
没有运气,所以我恢复了最初生成的代码