open external links from local resources in browser

This commit is contained in:
slymax 2020-03-23 23:38:54 +01:00
parent e3868a45cb
commit 4ceebd34d3
4 changed files with 7 additions and 12 deletions

View File

@ -8,24 +8,23 @@ This is a template project for Android Studio that allows you to create an andro
If you want to create an app that displays the content of a remote website
1. uncomment lines **25** and **26** in `MainActivity.java` and replace `http://example.com` with your remote source
1. uncomment line **24** in `MainActivity.java` and replace `http://example.com` with your remote source
```java
mWebView.loadUrl("https://example.com");
mWebView.setWebViewClient(new MyWebViewClient());
```
2. open the `MyWebViewClient.java` file and replace `example.com` on line **14** with your custom hostname
2. open the `MyWebViewClient.java` file and replace `example.com` on line **13** with your custom hostname
```java
if (Objects.requireNonNull(Uri.parse(url).getHost()).endsWith(".example.com")) {
if (url.startsWith("file:") || uri.getHost() != null && uri.getHost().endsWith("example.com")) {
```
### Using a local source
If you want to create a local HTML5 android app
1. uncomment line **29** in `MainActivity.java`
1. uncomment line **27** in `MainActivity.java`
```java
mWebView.loadUrl("file:///android_asset/index.html");

View File

@ -5,7 +5,6 @@ import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
@ -17,13 +16,12 @@ public class MainActivity extends Activity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = findViewById(R.id.activity_main_webview);
mWebView.setWebViewClient(new WebViewClient());
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(new MyWebViewClient());
// REMOTE RESOURCE
// mWebView.loadUrl("https://example.com");
// mWebView.setWebViewClient(new MyWebViewClient());
// LOCAL RESOURCE
// mWebView.loadUrl("file:///android_asset/index.html");

View File

@ -5,16 +5,14 @@ import android.net.Uri;
import android.webkit.WebView;
import android.webkit.WebViewClient;
@SuppressWarnings("unused")
class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Uri uri = Uri.parse(url);
if (uri.getHost() != null && uri.getHost().endsWith(".example.com")) {
if (url.startsWith("file:") || uri.getHost() != null && uri.getHost().endsWith("example.com")) {
return false;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;