From 8c9777c138d3d92232ab1af48c4542efa2a7b9ff Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 24 Sep 2017 22:26:01 +0800 Subject: [PATCH] fix #232 --- app/src/main/java/com/stardust/widget/EWebView.java | 11 ++++++++--- .../com/stardust/autojs/ScriptEngineService.java | 3 ++- .../src/main/java/com/stardust/util/TextUtils.java | 12 +++++++++++- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/stardust/widget/EWebView.java b/app/src/main/java/com/stardust/widget/EWebView.java index 4e062ce7..ee157bf8 100644 --- a/app/src/main/java/com/stardust/widget/EWebView.java +++ b/app/src/main/java/com/stardust/widget/EWebView.java @@ -2,7 +2,9 @@ package com.stardust.widget; import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.graphics.Bitmap; +import android.net.Uri; import android.os.Build; import android.support.annotation.RequiresApi; import android.support.v4.widget.SwipeRefreshLayout; @@ -98,13 +100,16 @@ public class EWebView extends FrameLayout implements SwipeRefreshLayout.OnRefres @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { - view.loadUrl(request.getUrl().toString()); - return true; + return shouldOverrideUrlLoading(view, request.getUrl().toString()); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { - view.loadUrl(url); + if (url.startsWith("http://") || url.startsWith("https://")) { + view.loadUrl(url); + } else { + getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); + } return true; } } diff --git a/autojs/src/main/java/com/stardust/autojs/ScriptEngineService.java b/autojs/src/main/java/com/stardust/autojs/ScriptEngineService.java index 3e3fe589..16b6785d 100644 --- a/autojs/src/main/java/com/stardust/autojs/ScriptEngineService.java +++ b/autojs/src/main/java/com/stardust/autojs/ScriptEngineService.java @@ -18,6 +18,7 @@ import com.stardust.autojs.runtime.api.Console; import com.stardust.autojs.script.JavaScriptSource; import com.stardust.autojs.script.ScriptSource; import com.stardust.lang.ThreadCompat; +import com.stardust.util.TextUtils; import com.stardust.util.UiHandler; import org.greenrobot.eventbus.EventBus; @@ -248,7 +249,7 @@ public class ScriptEngineService { writer.close(); BufferedReader bufferedReader = new BufferedReader(reader); String line; - StringBuilder scriptTrace = new StringBuilder(e.getMessage()); + StringBuilder scriptTrace = new StringBuilder(TextUtils.toEmptyIfNull(e.getMessage())); while ((line = bufferedReader.readLine()) != null) { if (line.trim().startsWith("at script")) scriptTrace.append("\n").append(line); diff --git a/common/src/main/java/com/stardust/util/TextUtils.java b/common/src/main/java/com/stardust/util/TextUtils.java index 261d6f4a..f695db30 100644 --- a/common/src/main/java/com/stardust/util/TextUtils.java +++ b/common/src/main/java/com/stardust/util/TextUtils.java @@ -1,12 +1,22 @@ package com.stardust.util; +import android.support.annotation.NonNull; + /** * Created by Stardust on 2017/5/3. */ public class TextUtils { - public static String join(CharSequence delimiter, Object... tokens){ + public static String join(CharSequence delimiter, Object... tokens) { return android.text.TextUtils.join(delimiter, tokens); } + + + @NonNull + public static String toEmptyIfNull(String message) { + if (message == null) + return ""; + return message; + } }