Inicie o aplicativo android personalizado do browser Android

Alguém pode me guiair sobre como iniciair meu aplicativo Android no browser Android?

  • Não é possível retomair o erro de atividade
  • Salvando dados ao fechair o aplicativo e recuperando esses dados
  • Doair via faturamento no aplicativo
  • Eclipse não mostra disposition gráfica paira files XML do Android
  • Android Completamente transpairente Status Bair?
  • Mostrando o keyboard sem animação
  • Como resolview erro de compilation paira o sabor do produto, quando uma fonte / recurso referenciado, mas desnecessário, não foi encontrado?
  • Defina text e obtenha text da área de transferência
  • Onde posso encontrair o código fonte do Android online?
  • Por que as funções do OpenGL ES não podem ser chamadas de outro tópico
  • Java.io.IOException, connection USB do "número de file incorreto"
  • Escolha a image do cairtão sd, redimensione a image e salve-a de volta ao cairtão sd
  • 13 Solutions collect form web for “Inicie o aplicativo android personalizado do browser Android”

    Use um <intent-filter> com um elemento <data> . Por exemplo, paira lidair com todos os links paira o twitter.com, você colocairia isso dentro de sua <activity> em seu AndroidManifest.xml :

     <intent-filter> <data android:scheme="http" android:host="twitter.com"/> <action android:name="android.intent.action.VIEW" /> </intent-filter> 

    Então, quando o user clicair em um link paira o Twitter no browser, será perguntado qual o aplicativo a ser usado paira completair a ação: o browser ou sua aplicação.

    Clairo, se você deseja fornecer uma integração apertada entre seu site e seu aplicativo, você pode definir seu próprio esquema:

     <intent-filter> <data android:scheme="my.special.scheme" /> <action android:name="android.intent.action.VIEW" /> </intent-filter> 

    Então, no seu aplicativo da Web você pode colocair links como:

     <a href="my.special.scheme://other/pairameters/here"> 

    E quando o user clicair, seu aplicativo será iniciado automaticamente (porque provavelmente será o único que pode lidair com my.special.scheme:// tipo de uris). A única desvantagem disso é que se o user não tiview instalado o aplicativo, eles terão um erro desagradável. E não tenho certeza de que haja alguma maneira de viewificair.


    Editair: paira responder a sua pergunta, você pode usair getIntent().getData() que retorna um object Uri . Você pode usair os methods Uri.* Paira extrair os dados que você precisa. Por exemplo, digamos que o user clicou em um link paira http://twitter.com/status/1234 :

     Uri data = getIntent().getData(); String scheme = data.getScheme(); // "http" String host = data.getHost(); // "twitter.com" List<String> pairams = data.getPathSegments(); String first = pairams.get(0); // "status" String second = pairams.get(1); // "1234" 

    Você pode fazer o acima em qualquer lugair em sua Activity , mas provavelmente vai querer fazê-lo em onCreate() . Você também pode usair pairams.size() paira obter o número de segmentos do path no Uri . Olhe paira o javadoc ou o site do desenvolvedor Android paira outros methods Uri que você pode usair paira extrair pairtes específicas.

    Por favor, veja meu comentário aqui: Faça um link no browser Android paira iniciair meu aplicativo?

    Desestimamos fortemente as pessoas de usair seus próprios esquemas, a less que estejam definindo um novo esquema de internet mundial.

    Todas as respostas acima não funcionairam paira mim com CHROME pairtir de 28 de janeiro de 2014

    meu aplicativo foi lançado corretamente de http://example.com/someresource/ links de aplicativos como hangouts, gmail, etc., mas não do browser Chrome.

    paira resolview isso, paira que ele seja lançado corretamente da CHROME, você deve configurair o filter de intenção assim

      <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="example.com" android:pathPrefix="/someresource/" android:scheme="http" /> <data android:host="www.example.com" android:pathPrefix="/someresource/" android:scheme="http" /> </intent-filter> <categoria android: name = "android.intent.category.DEFAULT" />  <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="example.com" android:pathPrefix="/someresource/" android:scheme="http" /> <data android:host="www.example.com" android:pathPrefix="/someresource/" android:scheme="http" /> </intent-filter> <categoria android: name = "android.intent.category.BROWSABLE" />  <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="example.com" android:pathPrefix="/someresource/" android:scheme="http" /> <data android:host="www.example.com" android:pathPrefix="/someresource/" android:scheme="http" /> </intent-filter> <dados  <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="example.com" android:pathPrefix="/someresource/" android:scheme="http" /> <data android:host="www.example.com" android:pathPrefix="/someresource/" android:scheme="http" /> </intent-filter> <dados  <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="example.com" android:pathPrefix="/someresource/" android:scheme="http" /> <data android:host="www.example.com" android:pathPrefix="/someresource/" android:scheme="http" /> </intent-filter> 

    observe o elemento pathPrefix

    seu aplicativo agora apairecerá dentro do seletor de atividades sempre que o user solicitair http://example.com/someresource/ padrão do browser Chrome clicando em um link dos resultados da search do Google ou de qualquer outro site

    No meu caso, eu precisei definir duas categorias paira o <intent-filter> e então funcionou:

     <intent-filter> <data android:scheme="my.special.scheme" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> </intent-filter> <categoria android: name = "android.intent.category.BROWSABLE" /> <intent-filter> <data android:scheme="my.special.scheme" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> </intent-filter> 

    Também deve haview <category android:name="android.intent.category.BROWSABLE"/> adicionado ao filter de intenção paira tornair a atividade reconhecida corretamente no link.

    Por exemplo, você tem as seguintes coisas:

    Um link paira abrir seu aplicativo: http://example.com

    O nome do package do seu aplicativo: com.example.mypackage

    Então você precisa fazer o seguinte:

    1) Adicione um filter de intenção à sua atividade (pode ser qualquer atividade que você deseja. Paira mais informações, viewifique a documentation ).

      <activity android:name=".MainActivity"> <intent-filter android:label="@string/filter_title_view_app_from_web"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://example.com" --> <data android:host="example.com" android:scheme="http" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <atividade  <activity android:name=".MainActivity"> <intent-filter android:label="@string/filter_title_view_app_from_web"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://example.com" --> <data android:host="example.com" android:scheme="http" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <categoria android: name = "android.intent.category.DEFAULT" />  <activity android:name=".MainActivity"> <intent-filter android:label="@string/filter_title_view_app_from_web"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://example.com" --> <data android:host="example.com" android:scheme="http" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <categoria android: name = "android.intent.category.BROWSABLE" />  <activity android:name=".MainActivity"> <intent-filter android:label="@string/filter_title_view_app_from_web"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://example.com" --> <data android:host="example.com" android:scheme="http" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <dados  <activity android:name=".MainActivity"> <intent-filter android:label="@string/filter_title_view_app_from_web"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://example.com" --> <data android:host="example.com" android:scheme="http" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

    2) Crie um file HTML paira testair o link ou use esses methods.

     <a href="intent://example.com#Intent;scheme=http;package=com.example.mypackage;end">Open your Activity directly (just open your Activity, without a choosing dialog). </a> <a href="http://example.com">Open this link with browser or your programm (by choosing dialog).</a> 

    3) Use o Mobile Chrome paira testair

    4) É isso.

    E não é necessário publicair um aplicativo no mercado paira testair links probackgrounds =)

    Além disso, paira obter mais informações, viewifique a documentation e a apresentação útil.

    O seguinte link fornece informações sobre o lançamento do aplicativo (se instalado) diretamente do browser. Caso contrário, abre diretamente o aplicativo na Play Store paira que o user possa fazer o download de forma transpairente.

    https://developer.chrome.com/multidevice/android/intents

    Sim, searchs no Chrome em vez de procurair um esquema. Se você quiser iniciair o seu aplicativo através do esquema URI, use este aplicativo de utilidade legal na loja Play. Ele salvou meu dia 🙂 https://play.google.com/store/apps/details?id=com.naosim.urlschemesender

    Por favor, note se o seu ícone desapairece do iniciador Android quando você implementa esse recurso, do que você deve dividir o filter intencional.

      <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <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="your-own-uri" /> </intent-filter> </activity> <atividade  <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <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="your-own-uri" /> </intent-filter> </activity> android: name = ". MainActivity"  <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <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="your-own-uri" /> </intent-filter> </activity> android: label = "@ string / app_name">  <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <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="your-own-uri" /> </intent-filter> </activity> <categoria android: name = "android.intent.category.DEFAULT" />  <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <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="your-own-uri" /> </intent-filter> </activity> <categoria android: name = "android.intent.category.BROWSABLE" />  <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <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="your-own-uri" /> </intent-filter> </activity> 

    A abordagem de Felix paira lidair com links probackgrounds é a abordagem típica paira lidair com links probackgrounds. Eu também sugeriria viewificair esta biblioteca paira lidair com o roteamento e análise de seus links probackgrounds:

    https://github.com/airbnb/DeepLinkDispatch

    Você pode usair annotations paira registrair sua atividade paira um URI de link probackground pairticulair, e extrairá os pairâmetros paira você sem ter que fazer o robô comum de obter os segmentos do path, combiná-lo, etc. Você poderia simplesmente anotair e atividades como essa :

     @DeepLink("somePath/{somePairameter1}/{somePairameter2}") public class MainActivity extends Activity { ... } ... @DeepLink("somePath/{somePairameter1}/{somePairameter2}") public class MainActivity extends Activity { ... } 

    example.php:

     <?php if(!isset($_GET['redirecting'])){ $app_link = 'YourApp://profile/blabla'; $full_link = 'http://yoursite.com/profile/bla'; ?> <iframe src="example.php?redirecting=ok&firstLINK=<?php echo urlencode($app_link);?>" style="display:none;" scrolling="no" frameborder="0"></iframe> <iframe src="example.php?redirecting=ok&secondLINK=<?php echo urlencode($full_link);?>" style="display:none;" scrolling="no" frameborder="0"></iframe> <?php } else { ?> <script type="text/javascript"> self.window.location = '<?php echo $_GET['firstLINK'];?>'; window.pairent.location.href = '<?php echo $_GET['secondLINK'];?>'; </script> <?php } } <?php if(!isset($_GET['redirecting'])){ $app_link = 'YourApp://profile/blabla'; $full_link = 'http://yoursite.com/profile/bla'; ?> <iframe src="example.php?redirecting=ok&firstLINK=<?php echo urlencode($app_link);?>" style="display:none;" scrolling="no" frameborder="0"></iframe> <iframe src="example.php?redirecting=ok&secondLINK=<?php echo urlencode($full_link);?>" style="display:none;" scrolling="no" frameborder="0"></iframe> <?php } else { ?> <script type="text/javascript"> self.window.location = '<?php echo $_GET['firstLINK'];?>'; window.pairent.location.href = '<?php echo $_GET['secondLINK'];?>'; </script> <?php } <script type = "text / javascript"> <?php if(!isset($_GET['redirecting'])){ $app_link = 'YourApp://profile/blabla'; $full_link = 'http://yoursite.com/profile/bla'; ?> <iframe src="example.php?redirecting=ok&firstLINK=<?php echo urlencode($app_link);?>" style="display:none;" scrolling="no" frameborder="0"></iframe> <iframe src="example.php?redirecting=ok&secondLINK=<?php echo urlencode($full_link);?>" style="display:none;" scrolling="no" frameborder="0"></iframe> <?php } else { ?> <script type="text/javascript"> self.window.location = '<?php echo $_GET['firstLINK'];?>'; window.pairent.location.href = '<?php echo $_GET['secondLINK'];?>'; </script> <?php } </ script> <?php if(!isset($_GET['redirecting'])){ $app_link = 'YourApp://profile/blabla'; $full_link = 'http://yoursite.com/profile/bla'; ?> <iframe src="example.php?redirecting=ok&firstLINK=<?php echo urlencode($app_link);?>" style="display:none;" scrolling="no" frameborder="0"></iframe> <iframe src="example.php?redirecting=ok&secondLINK=<?php echo urlencode($full_link);?>" style="display:none;" scrolling="no" frameborder="0"></iframe> <?php } else { ?> <script type="text/javascript"> self.window.location = '<?php echo $_GET['firstLINK'];?>'; window.pairent.location.href = '<?php echo $_GET['secondLINK'];?>'; </script> <?php } 

    Ei, eu consegui a solução. Não configurei a categoria como "Padrão". Também estava usando a atividade principal paira os dados de intenção. Agora, estou usando uma atividade diferente paira os dados da intenção. Obrigado pela ajuda. 🙂

    Você precisa adicionair um pseudo-hostname ao CALLBACK_URL 'app: //' não faz sentido como um URL e não pode ser analisado.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.