Как проанализировать URL-адреса и страницы Wordpress в точном месте вместо HOMEPAGE в Webview - PullRequest
0 голосов
/ 29 мая 2019

Я использую WebView для загрузки моего адаптивного веб-сайта на Android .

Я уже включил Глубокая связь с помощью Android 101 Studio 1016 * App Link Assistant . Проблема в том, что все URL-адреса (домашняя страница, сообщения, страницы) запускают приложение только в ГЛАВНОЙ СТРАНИЦЕ вместо соответствующих ссылок .

Структура URL моего поста https://www.example.com/2019/05/samplepost.html
Структура URL моей страницы https://www.example.com/page

Я пробовал многие подходы, которые я нашел здесь, включая тот, который был поднят Shanil Soni Включить глубокую связь для Android для различных структурированных URL . Но он не работал, пока я не прибегнул к 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>

И инструмент добавил 3 строки в мой файл MainActivity.java. Сразу после " // ВНИМАНИЕ: это было автоматически сгенерировано для обработки ссылок приложения. "

@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();
}

Руководство разработчика Android, за которым я следовал https://developer.android.com/studio/write/app-link-indexing действительно показывало, что код неполон, но я не мог использовать их дальнейший код, как показано ниже, потому что они ссылались на локальный контент приложения, и я пытаюсь попасть на 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);
    }
}

Используя исправление, найденное в Включить глубокое связывание для Android для различных структурированных URL , я попытался отредактировать автоматически сгенерированный код в 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();

НЕТ УДАЧИ, поэтому я вернулся к изначально сгенерированным кодам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...