WebView App opens links from website on app I want to open it on browser - android

I build simple webView app but i want it to open external links from my website in phone browser instead of my app, please help me, because i can't figure it out alone
i will appriciate all help :D
ddddddddddddddddddddddddddddddddd
Help me find a way out from this situation
thanks
here is code:
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.messaging.FirebaseMessaging;
public class MainActivity extends AppCompatActivity {
private WebView mywebView;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mywebView=(WebView) findViewById(R.id.webview);
mywebView.setWebViewClient(new WebViewClient());
mywebView.loadUrl("my website");
WebSettings webSettings=mywebView.getSettings();
webSettings.setJavaScriptEnabled(true);
FirebaseMessaging.getInstance().subscribeToTopic("Subscribe")
.addOnCompleteListener(new OnCompleteListener<Void>() {
#Override
public void onComplete(#NonNull Task<Void> task) {
String msg = "Done";
if (!task.isSuccessful()) {
msg = "Failed";
}
}
});
}
public class mywebClient extends WebViewClient{
#Override
public void onPageStarted(WebView view, String url, Bitmap favicon){
super.onPageStarted(view,url,favicon);
}
#Override
public boolean shouldOverrideUrlLoading(WebView view,String url){
view.loadUrl(url);
return true;
}
}
#Override
public void onBackPressed(){
if(mywebView.canGoBack()) {
mywebView.goBack();
}
else{
super.onBackPressed();
}
}
}

Related

Android studio - Is it possible to change swipe refresh position?

I have embedded sites in my blog and I made an app with Android Studio. My problem is that it refreshes my page every time I scroll down. I don't have this problem if I make a post, only with the embedded sites.
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
public class MainActivity extends AppCompatActivity {
WebView webView;
private SwipeRefreshLayout swipeRefreshLayout;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://fddfdf.blogspot.com/?m=0");
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.getSettings().setUseWideViewPort(true);
webView.setInitialScale(1);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
swipeRefreshLayout = findViewById(R.id.swipe_layout);
initializeRefreshListener();
}
private class MywebClient extends WebViewClient {
#Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
#Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
}
#Override
public void onBackPressed() {
if (webView.isFocused() && webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
private void initializeRefreshListener() {
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
#Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
#Override
public void run() {
webView.reload();
swipeRefreshLayout.setRefreshing(false);
}
}, 1000);
}
});
}
}
My question is if I can set my app to refresh only when I swipe from the top side of the blog.

How to go back to previous page in WebView? [duplicate]

This question already has answers here:
How to go back to previous page if back button is pressed in WebView?
(18 answers)
Closed last year.
I am writing a simple WebView application. It works completely. I can't figure out exactly where to insert the code so that the back button does not close the application (but returns to the previous page). Tell me where exactly and what to insert?
Here is the code sample I'm using:
package com.example.lampamx;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
WebSettings settings = webView.getSettings();
settings.setDomStorageEnabled(true);
webView.loadUrl("https://google.com/");
WebViewClient webViewClient = new WebViewClient() {
#SuppressWarnings("deprecation") #Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
#TargetApi(Build.VERSION_CODES.N) #Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
};
webView.setWebViewClient(webViewClient);
}
}
UPDATE! Solved my problem.
CODE:
package com.example.lampamx;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
WebView webView;
#Override
public void onBackPressed() {
if (webView.canGoBack())
webView.goBack();
else
super.onBackPressed();
}
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
WebSettings settings = webView.getSettings();
settings.setDomStorageEnabled(true);
webView.loadUrl("http://google.com/");
WebViewClient webViewClient = new WebViewClient() {
#SuppressWarnings("deprecation")
#Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
#TargetApi(Build.VERSION_CODES.N)
#Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
};
webView.setWebViewClient(webViewClient);
}
};
use onBackPressed method, check if there is anything in history of WebView, if yes then use goBack()
WebView webView;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webView);
... rest of onCreate
}
#Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
return;
}
super.onBackPressed();
}
WebView webView must be declated as class-wide, above onCreate method, not inside

How to get WebView open URL inside itself?

i tried to make my webview opening URL's in the app but it doesn't work.
I am a newbie in Android Studio :)
Somehow it works but the links opens in Google Chrome outside the application.
Here's my MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebResourceRequest;
import android.content.Intent;
public class MainActivity extends AppCompatActivity {
private WebView clanapp;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
clanapp = (WebView) findViewById(R.id.clanapp);
clanapp.getSettings().getJavaScriptEnabled();
clanapp.setWebViewClient(new MyWebViewClient());
String ENROLLMENT_URL;
ENROLLMENT_URL = "https://www.google.ch";
clanapp.loadUrl(ENROLLMENT_URL);
}
public final class MyWebViewClient extends WebViewClient {
#Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Intent i = new Intent(Intent.ACTION_VIEW, request.getUrl());
startActivity(i);
return true;
}
}
}

Why not working choose file option in webview?

Why not working choose file option in webview?I have a wordpress website ,i used contactform7 plugin for upload-file option.but when , click on choose-file button in webview , this is not working.
MainActivity.java
import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebChromeClient;
import android.webkit.ValueCallback;
import android.content.Intent;
public class MainActivity extends AppCompatActivity {
private WebView myWebView;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView)findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://grocerydoorstep.com");
myWebView.setWebViewClient(new CustomWebViewClient());
}
public class CustomWebViewClient extends WebViewClient {
#Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
findViewById(R.id.progressBar1).setVisibility(View.VISIBLE);
}
#Override
public void onPageFinished(WebView view, String url) {
findViewById(R.id.progressBar1).setVisibility(View.GONE);
}
}
public void onBackPressed() {
if (myWebView.canGoBack()) {
myWebView.goBack();
} else {
super.onBackPressed();
}
}
}
Hi,maybe this link will be useful to you. Kindly check it out file chooser inside Webview
In the above link they explained about how to pick a file and how to capture a file using camera and get its path from Webview .

android WebView goBack and goForward does not work with WebViewClient

I used WebViewClient to display web pages in webview and also added back and forward buttons to navigate but it does not work, whenever i click back and forward buttons it does not go intended url instead remains in same url
Please help me. I am need of it
I have diabled the cache and then it worked:
WebView webView = (WebView)findViewById(R.id.webView);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
Here is a code that works for me :
package debut.stackoverflow;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
public class StackoverflowActivity extends Activity {
/** Called when the activity is first created. */
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final WebView webview = (WebView) findViewById(R.id.webView1);
webview.setWebViewClient(new HelloWebViewClient());
((Button)findViewById(R.id.buttonBackward)).setOnClickListener(
new OnClickListener() {
#Override
public void onClick(View v) {
webview.goBack();
}
});
((Button)findViewById(R.id.buttonForward)).setOnClickListener(
new OnClickListener() {
#Override
public void onClick(View v) {
webview.goForward();
}
});
webview.loadUrl("http://www.google.com");
}
private class HelloWebViewClient extends WebViewClient {
#Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
}
}

Categories

Resources