2012-08-02 43 views
13

wiem, że do otwierania aplikacji Android z linkiem wewnątrz strony internetowej, musimy napisać następujących w AndroidManifest.xml:Otwarte android aplikacji ze strony internetowej

 <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="my_scheme" android:host="my_host" /> 
     </intent-filter> 

Problem polega na tym, że napisałem go w następujący sposób:

 <intent-filter> 
      <action android:name="my_action"/> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="my_scheme" android:host="my_host" /> 
     </intent-filter> 

nie dodać „android.intent.action.VIEW”, a zamiast tego dodałam własne działanie, że zrobiłem. Nie mogę tego zmienić, ponieważ wersja jest już wydana.

Pytanie, czy istnieje sposób na uruchomienie aplikacji z JavaScript lub prostej strony HTML, może poprzez zdefiniowanie konkretnej akcji na stronie?

Dzięki,

Paz.


rozwiązany:

Podziękowania dla Davida znalazłem rozwiązanie:

<a href="intent://my_host#Intent;scheme=my_scheme;action=my_action;end">Link to my stuff</a> 
+0

Dlaczego nie można po prostu zwolnić aktualizację rynku to naprawić? –

+0

To na pewno rozwiąże problem, ale nie mogę zwolnić nowej wersji z powodu ograniczeń firmy. – Paz

+0

możliwy duplikat [Jak otworzyć natywną aplikację na iOS z aplikacji internetowej] (http://stackoverflow.com/questions/10237031/how-to-open-a-native-ios-app-from-a-web- app) –

Odpowiedz

18

Spróbuj tego:

Dodać linki wyglądać następująco:

<a href="intent:#Intent;action=my_action;end">Link to my stuff</a> 

także spójrz na Launch custom android application from android browser

+0

Dzięki Davidzie, co masz na myśli przez intencję: #Intent? czy nie powinno to być my_scheme: // my_host czy powinienem napisać tak, jak jest (intent: #Intent)? – Paz

+0

Nie próbowałem tego sam, ale wygląda na to, że możesz uruchomić intencję z przeglądarki internetowej, używając tego formatu linku. Nie sądzę, że twój adres URL 'myscheme: // my_host' będzie działał w tym przypadku, ponieważ przeglądarka po prostu utworzy zamiar z' action = android.intent.action.VIEW', a to nie będzie pasowało do twojego filtra Intent. Musisz trochę z tym pograć. Daj mi znać, jeśli to zrozumiesz. –

+1

Tak, zrozumiałem. Spróbuję tego i zaktualizuję, dzięki. – Paz

-2

1-ty sposób:

<html><head></head><body> 
<iframe src="YourApp://profile/blabla" width="1px" height="1px" scrolling="no" frameborder="0"></iframe> 
<script> 
setTimeout(function() { 
window.location = "http://YourSite.com/profile/blabla"; }, 4000 
       ); 
</script> 
</body> 
</html> 

LUB
2 sposób: https://stackoverflow.com/a/24023048/2165415

2

AndroidMainfest stwierdzenie:

<activity android:name="..."> 
<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:host="hostName" 
    android:path="path" 
    android:scheme="schemeName" /> 
    </intent-filter> 
</activity> 

można pozwolić, aby wywołać

<a href = "schemeName://hostName/path"> 

lub dodaj param url podobny w Brower

<a href = "schemeName://hostName/path?id=1&name=mark"> 
Powiązane problemy