Jump to content
gamesmax2

Abir links no navegador

Recommended Posts

Pessoal sou  novo com crianção de app android, este app e bastante simples utilizar webview.

Estou com um problema, queria abrir link externo que não seja do meu site no navegador do celular, meu código abrir todos os links externo no meu app.

 

exemplo quero que links externo sejam aberto no navegador e link como Youtube ou que utilizar algum app do celular seja aberto nesse app, segue meu codigo:

 



public class MainActivity extends AppCompatActivity {


    private WebView cash;


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        cash = findViewById(R.id.site);
        cash.getSettings().setJavaScriptEnabled(true);
        cash.setFocusable(true);
        cash.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        cash.getSettings().setAppCacheEnabled(true);
        cash.getSettings().setDomStorageEnabled(true);
        cash.setWebViewClient(new WebViewClient());
        cash.setWebChromeClient(new Meusite());
        cash.loadUrl("https://www.meusite.com.br/meu_site/");

    }

    private class Meusite extends WebChromeClient {
        private View mCustomView;
        private WebChromeClient.CustomViewCallback mCustomViewCallback;
        protected FrameLayout mFullscreenContainer;
        private int mOriginalOrientation;
        private int mOriginalSystemUiVisibility;

        Meusite() {}

        public Bitmap getDefaultVideoPoster()
        {
            if (mCustomView == null) {
                return null;
            }
            return BitmapFactory.decodeResource(getApplicationContext().getResources(), 2130837573);
        }

        public void onHideCustomView()
        {
            ((FrameLayout)getWindow().getDecorView()).removeView(this.mCustomView);
            this.mCustomView = null;
            getWindow().getDecorView().setSystemUiVisibility(this.mOriginalSystemUiVisibility);
            setRequestedOrientation(this.mOriginalOrientation);
            this.mCustomViewCallback.onCustomViewHidden();
            this.mCustomViewCallback = null;
        }

        public void onShowCustomView(View paramView, WebChromeClient.CustomViewCallback paramCustomViewCallback)
        {
            if (this.mCustomView != null)
            {
                onHideCustomView();
                return;
            }
            this.mCustomView = paramView;
            this.mOriginalSystemUiVisibility = getWindow().getDecorView().getSystemUiVisibility();
            this.mOriginalOrientation = getRequestedOrientation();
            this.mCustomViewCallback = paramCustomViewCallback;
            ((FrameLayout)getWindow().getDecorView()).addView(this.mCustomView, new FrameLayout.LayoutParams(-1, -1));
            getWindow().getDecorView().setSystemUiVisibility(3846);
        }
    }



     @Override
    public void onBackPressed() {
        if (cash.canGoBack()) {
            cash.goBack();
        } else {
            super.onBackPressed();
        }
    }
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Claudia França
      https://gestaotecc.com.br/ebook/nomedoarvio.pdf      ==== === =======> esse é o link do e-book 
       
      {"email":"Subscriber Already Exists","convertkit":"Inactive","drip":"Inactive","activeCampaign":"Inactive","campaignMonitor":"Inactive","getResponse":"Inactive","aweber":"Inactive","markethero":"Inactive","SendinBlue":"Inactive","MailPoet":"Inactive","ConstantContact":"Inactive","mailchimp":"Inactive","WebHook":"Inactive","database":"Subscriber Already Exists"}  =============> é o erro depois que preenche o formulário. Eu recebo os dados e preciso que o link do arquivo carregue direto. 

      https://gestaotecc.com.br/wp-admin/admin-ajax.php?action=ulpb_formBuilderEmail_ajax               é o caminho de  onde eu devo por o código mas não sei exatamente onde pr as instruções. 
       
       
      ou aceito alguma outra ideia para resolver o problema para quando o usuário preencher o formulário o arquivo de downloads carregar automaticamente. 
    • By iago_ss
      Olá!!!
      Sou iniciante na área de programação para desktop e móvel, porém, penso em iniciar um curso para começar a desenvolver para estas áreas.
      Hoje, penso em desenvolver um programa, similar a um site q possuo, isso porque fico preso a diversos problemas impossíveis de resolver por ser um ambiente web. 
      O site hoje possui uma webrádio shoutcast (passo por problemas sempre que o chrome atualiza as politicas de privacidade), um fórum, notícias de jogos dentre outras funcionalidades.
      Além disso, gostaria de implementar mini-jogos.
       
      Gostaria de saber qual a melhor linguagem, no ponto de vista de vocês, para desenvolver esse programa, tendo em vista que eu partiria do zero.
      Pesquisei sobre e as mais utilizadas são c# e Java. Com essas linguagens é possível consultar banco de dados mysql hospedados na web?
    • By thetheusss
      Descrição das regras de negócio: Uma loja vende 3 tipos de produto: livro, CD e software. Para todos os produtos existe código, descrição, preço e peso. Para o CD existe o nome da banda, para o livro existe o nome do autor e para o software existe a categoria. Para entregar um produto, o cálculo do frete é feito multiplicando o peso do produto por R$ 6,50. Implemente as classes que retratam esse cenário. Programa: O programa deve permitir ao usuário informar qual é o tipo de produto (livro, CD ou software) e, com base nesta resposta, solicitar o preenchimento dos atributos de cada tipo de produto. Em seguida, calcular o valor do frete e imprimir os dados do produto e o valor do frete. Obs.: tanto a leitura dos valores quando a impressão devem ser realizadas pelo terminal.
    • By Web.Developer
      $json = json_encode($urls, TRUE); $json = json_decode($urls, TRUE); $produtos = $json; if($produtos[0]==1){ $opcoes = ''; foreach ($produtos[1] as $produto) { $opcoes .= '<option value="'.$produto['face'].'">'.$produto['nome'].'</option>'; } echo '<select name="recarga">'.$opcoes.'</select>'; } como fazer esse json funcionar no java 
       
       $('#valores').append('<option selected>.:: Selecione uma valor .::</option>');                   for(var i=0;dados.length>i;i++){                                              //Adicionando registros retornados na tabela                       $('#valores').append('<option value="' + dados[i].face+ '">' + dados[i].nome+ '</option>');                     } fiz dessa forma mais não foi
    • By Overtron8000
      Ola galera, estive fazendo um app simples de impressao de formulario usando o ireport mas não estou conseguindo passar os parametros do formulario para o documento jmxl ja tentei de toda forma mas simplesmente esta caindo no catch e saindo sem criar o arquivo.
      private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { HashMap parametros = new HashMap(); parametros.put("fornecedor", fornecedortF.getText()); parametros.put("ncontrato", ncontratoF.getText()); String caminhoRelJasper = "geradorcontrato/relatorio.jrxml"; InputStream fonte = this.getClass().getClassLoader().getResourceAsStream(caminhoRelJasper); try { JasperReport report = JasperCompileManager.compileReport(fonte); JasperPrint print = JasperFillManager.fillReport(report,parametros, new JREmptyDataSource()); JasperExportManager.exportReportToPdfFile(print,"teste.pdf"); System.out.println("imprimiu"); }catch(JRException e){ System.out.println("caiu no catch");} System.out.println("saiu"); } Dai era para esses parametros do map irem pro jxml nao estao indo, nem cria um novo pdf na pasta.
      link do projeto: https://github.com/regis404/Gerador-de-Contratos
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.