From cd0599d6398553fc20facec2d898301aad42cdf9 Mon Sep 17 00:00:00 2001 From: LaizyBoy Date: Wed, 6 May 2026 11:17:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(browser):=20=E6=94=AF=E6=8C=81=E5=A4=96?= =?UTF-8?q?=E9=83=A8=E5=BA=94=E7=94=A8=E8=B0=83=E7=94=A8=E4=BC=A0=E5=85=A5?= =?UTF-8?q?=E7=BD=91=E9=A1=B5=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 AndroidManifest.xml 为 MainActivity 添加 http/https 的 intent-filter - 设置 singleTask 启动模式以复用 Activity 实例 - BrowserFragment 新增 MSG_OPEN_URL 消息处理外部 URL 跳转 - MainActivity 实现 handleExternalUrl 方法,在 onCreate/onNewIntent 中捕获并加载网页 --- winboll/build.properties | 4 ++-- winboll/src/main/AndroidManifest.xml | 11 +++++++++- .../winboll/studio/winboll/MainActivity.java | 20 +++++++++++++++++++ .../winboll/fragments/BrowserFragment.java | 11 +++++++++- 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/winboll/build.properties b/winboll/build.properties index 16a6063..8ccffac 100644 --- a/winboll/build.properties +++ b/winboll/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed May 06 11:08:36 CST 2026 +#Wed May 06 11:16:28 CST 2026 stageCount=27 libraryProject= baseVersion=15.11 publishVersion=15.11.26 -buildCount=16 +buildCount=18 baseBetaVersion=15.11.27 diff --git a/winboll/src/main/AndroidManifest.xml b/winboll/src/main/AndroidManifest.xml index 2f5cc47..9c136b1 100644 --- a/winboll/src/main/AndroidManifest.xml +++ b/winboll/src/main/AndroidManifest.xml @@ -37,7 +37,16 @@ + android:exported="true" + android:launchMode="singleTask"> + + + + + + + + diff --git a/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java b/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java index 6f3f370..f746772 100644 --- a/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java +++ b/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java @@ -1,6 +1,7 @@ package cc.winboll.studio.winboll; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -44,6 +45,25 @@ public class MainActivity extends DrawerFragmentActivity { addFragment(mBrowserFragment); } showFragment(mBrowserFragment); + handleExternalUrl(getIntent()); + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + handleExternalUrl(intent); + } + + private void handleExternalUrl(Intent intent) { + if (intent != null && Intent.ACTION_VIEW.equals(intent.getAction())) { + Uri uri = intent.getData(); + if (uri != null && mBrowserFragment != null && mBrowserFragment.getBrowserHandler() != null) { + Message msg = Message.obtain(); + msg.what = BrowserFragment.MSG_OPEN_URL; + msg.obj = uri.toString(); + mBrowserFragment.getBrowserHandler().sendMessage(msg); + } + } } public static void sendMessage(Message msg) { diff --git a/winboll/src/main/java/cc/winboll/studio/winboll/fragments/BrowserFragment.java b/winboll/src/main/java/cc/winboll/studio/winboll/fragments/BrowserFragment.java index ee58f42..890824a 100644 --- a/winboll/src/main/java/cc/winboll/studio/winboll/fragments/BrowserFragment.java +++ b/winboll/src/main/java/cc/winboll/studio/winboll/fragments/BrowserFragment.java @@ -44,7 +44,9 @@ public class BrowserFragment extends Fragment implements View.OnClickListener, W // 消息标识:跳转首页(winboll.cc) public static final int MSG_HOMEPAGE = 1001; // 跳转到历史记录位置 - public static final int MSG_HISTORY_POSITION = 1002; + public static final int MSG_HISTORY_POSITION = 1002; + // 打开外部应用传入的 URL + public static final int MSG_OPEN_URL = 1003; // 自定义Handler(接收应用内其他页面发送的消息) private Handler mBrowserHandler; @@ -148,6 +150,13 @@ public class BrowserFragment extends Fragment implements View.OnClickListener, W //showToast("已跳转至" + historyUrl); } break; + case MSG_OPEN_URL: + String openUrl = (String) msg.obj; + if (openUrl != null && !openUrl.isEmpty()) { + mWinBoLLView.loadUrlSafe(openUrl); + mEtUrl.setText(openUrl); + } + break; default: break; }