• 22-07-2020, 19:05:22
    #1
    Android Studio- Webview Projesi

    Her şey tamam derken bir şey farkettim. Örneğin x,com sitesine girdiğimde orada ki tüm bağlantıları uygulama içinde açıyor ama ben sadece x,com domainine giden linkleri uygulama içinde değil, direk tarayıcıdan açmasını istiyorum.

    Bunu nasıl yapabilirim ?

    Amaç: asd,csd,xcxc,xasd .com gibi tüm siteler uygulamadan ama x,com'un harici açılması

    Teşekkür ederim.

    Çözüldü// Son yorumda kodları paylaştım
  • 22-07-2020, 19:15:11
    #2
    Üyeliği durduruldu
    Şu anki kodunuzu iletirseniz bakalım.
  • 22-07-2020, 19:17:43
    #3
    awoken adlı üyeden alıntı: mesajı görüntüle
    Şu anki kodunuzu iletirseniz bakalım.
    public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {    private  String link="site.com/?utm_source=mobil&utm_medium=uygulama";    private  SwipeRefreshLayout sw;  //swipe layout    public  WebView w;  //web view    private AdView mAdView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mAdView = findViewById(R.id.adView);        AdRequest adRequest = new AdRequest.Builder().build();        mAdView.loadAd(adRequest);        sw=(SwipeRefreshLayout) findViewById(R.id.sw);         w = (WebView) findViewById(R.id.w);        sw.setOnRefreshListener(this);        w.getSettings().setJavaScriptEnabled(true);        w.setWebViewClient( new WebViewClient());        w.loadUrl(link);    }    @Override    public void onRefresh() {        w.reload();        sw.setRefreshing(false);    }}

    https://shrib.com/#RedBilledToucan8bBd0oq
  • 22-07-2020, 19:25:01
    #4
    Üyeliği durduruldu
    public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {
        private String link = "site.com/?utm_source=mobil&utm_medium=uygulama";
        private SwipeRefreshLayout sw;
        public WebView w;
        private AdView mAdView;
        @Override protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mAdView = findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);
            sw = (SwipeRefreshLayout) findViewById(R.id.sw);
            w = (WebView) findViewById(R.id.w);
            sw.setOnRefreshListener(this);
            w.getSettings().setJavaScriptEnabled(true);
            w.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
            {
                URI uri = new URI(request.getUrl());
                String domain = uri.getHost();
                if(domain == "x.com") {
                    Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
                    view.getContext().startActivity(intent);
                }
                return true;
            }
            });
            w.loadUrl(link);
        }
        @Override public void onRefresh() {
            w.reload();
            sw.setRefreshing(false);
        }
    }
    Şu şekilde dener misiniz, gerekli kütüphaneli import edip tabi.
  • 22-07-2020, 19:34:29
    #5
    awoken adlı üyeden alıntı: mesajı görüntüle
    public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {
        private String link = "site.com/?utm_source=mobil&utm_medium=uygulama";
        private SwipeRefreshLayout sw;
        public WebView w;
        private AdView mAdView;
        @Override protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mAdView = findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);
            sw = (SwipeRefreshLayout) findViewById(R.id.sw);
            w = (WebView) findViewById(R.id.w);
            sw.setOnRefreshListener(this);
            w.getSettings().setJavaScriptEnabled(true);
            w.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
            {
                URI uri = new URI(request.getUrl());
                String domain = uri.getHost();
                if(domain == "x.com") {
                    Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
                    view.getContext().startActivity(intent);
                }
                return true;
            }
            });
            w.loadUrl(link);
        }
        @Override public void onRefresh() {
            w.reload();
            sw.setRefreshing(false);
        }
    }
    Şu şekilde dener misiniz, gerekli kütüphaneli import edip tabi.



    Gerekli kütüphaneler ekli diye düşünüyorum.(Yukarıda)

    Edit Çözüldü

    public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {
    private String link = "site.com/?utm_source=mobil&utm_medium=uygulama";
    private SwipeRefreshLayout sw;
    public WebView w;
    private AdView mAdView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mAdView = findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);
    sw = (SwipeRefreshLayout) findViewById(R.id.sw);
    w = (WebView) findViewById(R.id.w);
    sw.setOnRefreshListener(this);
    w.getSettings().setJavaScriptEnabled(true);
    w.setWebChromeClient(new WebChromeClient());
    w.setWebViewClient(new WebViewClient() {
    
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    if(!(String.valueOf(request.getUrl())).contains("instagram.com")) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    view.loadUrl(String.valueOf(request.getUrl()));
    }
    } else {
    Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
    view.getContext().startActivity(intent);
    }
    }
    
    return true;
    }
    
    
    @Override
    public void onPageFinished(WebView _param1, String _param2) {
    final String _url = _param2;
    
    super.onPageFinished(_param1, _param2);
    }
    });
    
    w.loadUrl(link);
    }
    @Override
    public void onRefresh() {
    w.reload();
    sw.setRefreshing(false);
    }
    }