diff --git a/winboll/build.properties b/winboll/build.properties index 8ccffac..0aae9e2 100644 --- a/winboll/build.properties +++ b/winboll/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed May 06 11:16:28 CST 2026 +#Wed May 06 11:22:14 CST 2026 stageCount=27 libraryProject= baseVersion=15.11 publishVersion=15.11.26 -buildCount=18 +buildCount=20 baseBetaVersion=15.11.27 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 f746772..e2a9402 100644 --- a/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java +++ b/winboll/src/main/java/cc/winboll/studio/winboll/MainActivity.java @@ -41,29 +41,37 @@ public class MainActivity extends DrawerFragmentActivity { initMainHandler(); if (mBrowserFragment == null) { - mBrowserFragment = new BrowserFragment(); + String externalUrl = extractExternalUrl(getIntent()); + if (externalUrl != null) { + mBrowserFragment = BrowserFragment.newInstance(externalUrl); + } else { + mBrowserFragment = new BrowserFragment(); + } addFragment(mBrowserFragment); } showFragment(mBrowserFragment); - handleExternalUrl(getIntent()); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); - handleExternalUrl(intent); + String externalUrl = extractExternalUrl(intent); + if (externalUrl != null && mBrowserFragment != null && mBrowserFragment.getBrowserHandler() != null) { + Message msg = Message.obtain(); + msg.what = BrowserFragment.MSG_OPEN_URL; + msg.obj = externalUrl; + mBrowserFragment.getBrowserHandler().sendMessage(msg); + } } - private void handleExternalUrl(Intent intent) { + private String extractExternalUrl(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); + if (uri != null) { + return uri.toString(); } } + return null; } 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 890824a..aa7b4ca 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 @@ -50,11 +50,20 @@ public class BrowserFragment extends Fragment implements View.OnClickListener, W // 自定义Handler(接收应用内其他页面发送的消息) private Handler mBrowserHandler; - // 单例创建方法(Java 7 静态工厂模式) + // 单例创建方法(Java 7 显式工厂模式) public static BrowserFragment newInstance() { return new BrowserFragment(); } + // 创建带初始URL的实例(供外部应用调用时使用) + public static BrowserFragment newInstance(String initialUrl) { + BrowserFragment fragment = new BrowserFragment(); + Bundle args = new Bundle(); + args.putString("initial_url", initialUrl); + fragment.setArguments(args); + return fragment; + } + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -118,10 +127,23 @@ public class BrowserFragment extends Fragment implements View.OnClickListener, W mWinBoLLView.setProgressBar(mProgressBar); // 设置页面状态监听(this 实现 OnPageStatusListener) mWinBoLLView.setOnPageStatusListener(this); - // 预加载默认页面(winboll.cc 首页) - String defaultUrl = "https://www.winboll.cc"; - mWinBoLLView.loadUrlSafe(defaultUrl); - mEtUrl.setText(defaultUrl); + + // 检查是否有外部传入的初始 URL + String initialUrl = null; + if (getArguments() != null) { + initialUrl = getArguments().getString("initial_url"); + } + + if (initialUrl != null && !initialUrl.isEmpty()) { + // 使用外部传入的 URL + mWinBoLLView.loadUrlSafe(initialUrl); + mEtUrl.setText(initialUrl); + } else { + // 预加载默认页面(winboll.cc 首页) + String defaultUrl = "https://www.winboll.cc"; + mWinBoLLView.loadUrlSafe(defaultUrl); + mEtUrl.setText(defaultUrl); + } } // ------------------- 新增:初始化Handler(接收应用内消息) -------------------