-1

我正試圖在我的應用中實施谷歌應用索引。它完美的作品幾乎我所有的部分,但它無法與我的應用程序的一個部分,其名稱爲:Sección con acentos áéóGoogle App Indexing可以使用url中的特殊字符嗎? (acutesáéó..)

我加入到這個我的HTML網頁,用於測試深層鏈接:

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

當我按下在HTML鏈接,我的應用程序被成功打開,但意圖過濾器沒有被正確調用,因爲我不能用「SecciónCON acentos AEO」

我使用URL編碼鏈接tryed與Secci%C3%B3n%20con%20acentos%20%C3%A1%C3%A9%C3%B3但接收數據體同樣的問題

Google App索引深層鏈接對特殊字符有限制嗎?

回答

2

Google App索引深度鏈接有特殊的 個字符的限制嗎?

不,它對特殊字符沒有任何限制。

我試圖與這兩個您的網址,並通過官方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/」深度鏈接是行不通的,因爲它有「#」在裏面。如果我刪除#,它的作品。任何解決方案請幫助。 – iMDroid