繁体   English   中英

如何在弹出/窗口中打开另一个应用程序?

[英]How to open another app in a popup/window?

我正在使用以下代码从我的应用程序中打开另一个应用程序:

Uri uri = Uri.parse("http://url_to_app's_website");
Intent in = new Intent(Intent.ACTION_VIEW, uri);
in.setPackage("com.package.address");

try {
    startActivity(in);

} catch (ActivityNotFoundException e) {

    startActivity(new Intent(Intent.ACTION_VIEW,
    Uri.parse("http://url_to_app's_website")));
}

这可以正常工作,但是会以全屏模式打开应用程序。 我想在窗口/弹出窗口中打开它。 我怎么做?

您似乎只是在打开一个Web应用程序。 在这种情况下,您应该执行以下操作:

  • 使用WebView创建对话框
  • 显示对话框
  • 将网址加载到对话框的webView

请参阅此SO问题该问题提供了执行此操作的方法。

这是可以让您获得所需内容的代码:( 从上面提到的问题的答案中借来)

对话框布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
>
    <WebView
        android:id="@+id/webview"
        android:scrollbars="vertical"
        android:scrollbarAlwaysDrawVerticalTrack="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
</LinearLayout>

将您的网址加载到对话框的webView中:

final TextView seeMonthlyBill = (TextView) parentLayout
            .findViewById(R.id.my_ac_my_service_timewarnercable_link);
    seeMonthlyBill.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Dialog dialog = new Dialog(getActivity());
            dialog.setContentView(R.layout.web_dialog)
            WebView wb = (WebView) dialog.findViewById(R.id.webview);
            wb.getSettings().setJavaScriptEnabled(true);
            wb.loadUrl("http://www.google.com");
            wb.setWebViewClient(new HelloWebViewClient());
            dialog.setCancelable(true);
            dialog.setTitle("WebView");
            dialog.show();
        }
    });

在Android N上, 如果用户已将设备置于多窗口模式,则可以使用FLAG_ACTIVITY_LAUNCH_ADJACENT尝试将其他活动启动到单独的窗口中。 但是,您不能保证它会起作用,因为其他应用程序的开发人员必须同意。

在Android N之前,您无法在任何类型的弹出窗口中打开另一个应用程序,除非该应用程序具有针对该弹出窗口的特定API。

目标活动应支持弹出模式,如果支持,则应将设置放入捆绑对象中,并将其传递给Intent,然后传递给startActivity();。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM