-1

Я пытаюсь внедрить индексирование приложения Google в свои приложения. Он отлично работает с почти все моими разделами, но она не с частью моего приложения, именем которого является: Sección con acentos áéóМожет ли индексирование приложений Google работать со специальными символами в URL? (acutes áéó ..)

добавить это в моем HTML веб для тестирования глубоких ссылок:

<a href="android-app://com.example.launcher/http/section/Sección con acentos áéó">Sección con acentos áéó</a> 

Когда я нажимаю ссылку на html, мое приложение успешно открывается, но фильтр намерения не вызывается правильно, потому что я не могу получить тело данных с помощью «Sección con acentos áéó»

Я попытался использовать URL-кодированную ссылку с Secci%C3%B3n%20con%20acentos%20%C3%A1%C3%A9%C3%B3, но такая же проблема

Google App Индексирование глубокой привязки имеет ограничения со специальными символами?

ответ

2

Google App Индексирование глубокой ссылки имеет ограничения со специальными символами?

Нет, у него нет никаких ограничений со специальными символами.

Я пытался как с вашего URL, а также с URL, порожденного официальным Test Your App Indexing Implementation page:

android-app://com.example.launcher/http/section/Sección con acentos áéó 
android-app://com.example.launcher/http/section/Secci%C3%B3n%20con%20acentos%20%C3%A1%C3%A9%C3%B3 
intent://section/Secci%C3%B3n con acentos %C3%A1%C3%A9%C3%B3#Intent;scheme=http;package=com.example.launcher;end 

Каждый URL успешно открывает приложение и data, содержащиеся в намерениях:

http://section/Secci%C3%B3n%20con%20acentos%20%C3%A1%C3%A9%C3%B3 

После получения намерения вам необходимо использовать URLDecoder.decode для декодирования URL:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Intent intent = getIntent(); 
    if (intent != null) { 
     Uri data = intent.getData(); 
     if (data != null) { 
      String uri = data.toString(); 
      Log.d(TAG, "URI: " + uri); 

      String decodedUri = null; 

      try { 
       decodedUri = URLDecoder.decode(uri, "UTF-8"); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } 

      Log.d(TAG, "DECODED URI: " + decodedUri); 
     } 
    } 
} 

Это полученный результат:

com.example.launcher D/MainActivity: URI: http://section/Secci%C3%B3n%20con%20acentos%20%C3%A1%C3%A9%C3%B3 
com.example.launcher D/MainActivity: DECODED URI: http://section/Sección con acentos áéó 
+0

эй ссылку «http://example.com/abc#/catalog/» не работает в глубоком связывании, потому что у него есть «#» в нем. Если я удалю #, он будет работать. Любое решение? Помощь Pls. – iMDroid