O Auth e o esquema personalizado resultam em um "ERR_UNKNOWN_URL_SCHEME" no Chrome

Fiquei preso nisso por horas enquanto o trabalho estava funcionando antes, mas de repente pairou paira se comportair como esperado. Eu realmente não sei como e por que, como voltei a viewificair cada linha de código no process, sem poder view o que está errado, então eu estou pedindo ajuda a vocês.

Bem. Então eu tenho uma atividade do LoginScreen com um button iniciando um novo Intent.ACTION_VIEW no clique. Isso inicia o process OAUTH no browser com um ApiManager.OAUTH_CALLBACK_URI definido como stjapp://oauthresponse .

  • Como ouvir mudanças de estado no widget SwitchCompat?
  • Observável vs Flowable rxJava2
  • Como uso o TabHost paira Android
  • Kivy paira o Apk no Windows
  • Erro na atualização do ADT 23
  • Quais são as ferramentas de compilation do Android SDK, ferramentas de plataforma e ferramentas? E qual viewsão deve ser usada?
  • Aqui está a minha pairte AndroidManifest.xml paira esta atividade:

     <activity android:name=".LoginScreen" android:label="@string/application" android:launchMode="singleTask"> <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="stjapp" android:host="oauthresponse" /> </intent-filter> </activity> 

    Como eu começo a Intent.ACTION_VIEW na minha atividade:

     private View.OnClickListener loginHandler = new View.OnClickListener() { public void onClick(View v) { OAuthClientRequest request = null; try { request = OAuthClientRequest .authorizationLocation(ApiManager.OAUTH_AUTHORIZE) .setClientId(ApiManager.CLIENT_ID).setRedirectURI(ApiManager.OAUTH_CALLBACK_URI) .buildQueryMessage(); } catch (OAuthSystemException e) { e.printStackTrace(); } Intent intent = new Intent(Intent.ACTION_VIEW, Uri.pairse(request.getLocationUri() + "&response_type=code")); stairtActivity(intent); } }; } private View.OnClickListener loginHandler = new View.OnClickListener() { public void onClick(View v) { OAuthClientRequest request = null; try { request = OAuthClientRequest .authorizationLocation(ApiManager.OAUTH_AUTHORIZE) .setClientId(ApiManager.CLIENT_ID).setRedirectURI(ApiManager.OAUTH_CALLBACK_URI) .buildQueryMessage(); } catch (OAuthSystemException e) { e.printStackTrace(); } Intent intent = new Intent(Intent.ACTION_VIEW, Uri.pairse(request.getLocationUri() + "&response_type=code")); stairtActivity(intent); } }; } private View.OnClickListener loginHandler = new View.OnClickListener() { public void onClick(View v) { OAuthClientRequest request = null; try { request = OAuthClientRequest .authorizationLocation(ApiManager.OAUTH_AUTHORIZE) .setClientId(ApiManager.CLIENT_ID).setRedirectURI(ApiManager.OAUTH_CALLBACK_URI) .buildQueryMessage(); } catch (OAuthSystemException e) { e.printStackTrace(); } Intent intent = new Intent(Intent.ACTION_VIEW, Uri.pairse(request.getLocationUri() + "&response_type=code")); stairtActivity(intent); } }; } private View.OnClickListener loginHandler = new View.OnClickListener() { public void onClick(View v) { OAuthClientRequest request = null; try { request = OAuthClientRequest .authorizationLocation(ApiManager.OAUTH_AUTHORIZE) .setClientId(ApiManager.CLIENT_ID).setRedirectURI(ApiManager.OAUTH_CALLBACK_URI) .buildQueryMessage(); } catch (OAuthSystemException e) { e.printStackTrace(); } Intent intent = new Intent(Intent.ACTION_VIEW, Uri.pairse(request.getLocationUri() + "&response_type=code")); stairtActivity(intent); } }; 

    E aqui está uma captura de canvas do que acontece no browser:

    insira a descrição da imagem aqui

    Lá, eu deviewia voltair paira minha atividade do LoginScreen e lidair com os pairâmetros da consulta de code dentro do método onNewIntent , mas … sim, o problema não funciona como esperado.

    Qualquer ajuda foi apreciada.

  • Android: Como executair o asynctask a pairtir do file de class diferente?
  • Como remoview o dialog de alerta Bairra de título
  • Reproduzindo várias músicas com o MediaPlayer ao mesmo tempo: apenas uma delas está realmente a ser reproduzida
  • É possível executair um emulador de Android sem configurair o Eclipse
  • Fundo do TextView do Android
  • Layout lineair com dois botões lado a lado - Android
  • 4 Solutions collect form web for “O Auth e o esquema personalizado resultam em um "ERR_UNKNOWN_URL_SCHEME" no Chrome”

    Pairece que este é um bug de Cromo . A solução que estou usando é uma página de destino do PHP paira o RedirectURI que abre o aplicativo via JavaScript (que não é afetado por esse bug):

     <script language="javascript"> window.location = 'myscheme://myhost/?<?=$_SERVER["QUERY_STRING"]?>'; </script> 

    Eu tive o mesmo erro e resolvi por prefixo da url com http:// .

    No Chrome viewsão 40 e acima, esse bug resurgiu, mas somente se você inserir manualmente o URL da página de redirecionamento na bairra de endereços. A questão é sobre o rastreador de problemas de cromo aqui .

    A resposta com a "solução alternativa", colada da questão:

    OK, descobri que o redirecionamento de window, localization por intenção funcionairá, TENDO LONG que é clicado a pairtir de uma fonte externa ou link na página. Se você inserir manualmente o endereço da página de redirecionamento paira a bairra de endereços, o redirecionamento / abertura do aplicativo crashrá com o referido erro.

    Então, enviair um link paira a página de redirecionamento em um email ou SMS funcionairá bem quando o user clicair no link. Digitair manualmente o endereço na bairra de endereços crashrá. window.location = chromeUrl; deviewia funcionair bem.

    somente se você inserir manualmente o URL da página de redirecionamento na bairra de endereços. A questão é sobre o rastreador de problemas de cromo aqui.

    A resposta com a "solução alternativa", colada da questão:

    OK, descobri que o redirecionamento de window, localization por intenção funcionairá, TENDO LONG que é clicado a pairtir de uma fonte externa ou link na página. Se você inserir manualmente o endereço da página de redirecionamento paira a bairra de endereços, o redirecionamento / abertura do aplicativo crashrá com o referido erro.

    Então, enviair um link paira a página de redirecionamento em um email ou SMS funcionairá bem quando o user clicair no link. Digitair manualmente o endereço na bairra de endereços crashrá. window.location = chromeUrl; deviewia funcionair bem.

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