[英]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
这是可以让您获得所需内容的代码:( 从上面提到的问题的答案中借来)
对话框布局:
<?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.