我正在使用此代码从我的应用中打开另一个应用:
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")));
}
这是有效的,但它会全屏打开应用程序。我想在窗口/弹出窗口中打开它。我该怎么做?
答案 0 :(得分:1)
您似乎只是打开一个网络应用程序。如果是这种情况,您应该执行以下操作:
WebView
webView
请参阅this SO Question,它提供了一种方法。
以下代码可以满足您的需求: (借鉴了上述问题的答案)
对话框布局:
<?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();
}
});
答案 1 :(得分:0)
目标活动应支持弹出模式,如果支持,则应将设置放入Bundle对象并将其传递给Intent,然后再传递给startActivity();
答案 2 :(得分:0)
在Android N上,如果用户已将设备置于多窗口模式,您可以use FLAG_ACTIVITY_LAUNCH_TO_ADJACENT
尝试将其他活动启动到单独的窗口中。但是,您不能保证这会起作用,因为其他应用程序的开发人员必须同意。
在Android N之前,您无法在任何类型的弹出窗口中打开另一个应用程序,除非该应用程序具有某些特定的API。