-1

我正在尝试在我的应用程序中实现谷歌应用程序索引。它几乎适用于我的所有部分,但它在我的应用程序的一部分中失败,其名称为:Sección con acentos áéó

我将此添加到我的 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 Indexing 深度链接对特殊字符有限制吗?

4

1 回答 1

2

Google App Indexing 深度链接对特殊字符有限制吗?

不,它对特殊字符没有任何限制。

我尝试了您的 URL 以及官方测试您的应用索引实施页面生成的 URL :

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 都成功打开了应用程序,并且dataIntent 中包含的内容是:

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 áéó
于 2015-10-23T16:33:33.843 回答