如何在android中的latters边界内的另一个应用程序中打开一个应用程序?即。,类似于iframe在HTML中的作用。
答案 0 :(得分:1)
你基本上不能。这违反了Android的规则。您可以做的最多是打开一个网页作为应用程序的一部分。这是使用webView完成的。您可以通过在Webview的xml文件中设置webview的边界来控制屏幕的边界。
public class WebViewFragment extends Fragment {
public static final String ARG_SECTION_NUMBER = "section_number";
public WebViewFragment() {
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View mainView = inflater.inflate(R.layout.fragment_facebook,
container, false);
WebView webView = (WebView) mainView.findViewById(R.id.webView1);
webView.setWebViewClient(new MyWebViewClient());
webView.getSettings().setSupportZoom(false);
webView.getSettings()
.setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setDomStorageEnabled(true);
webView.loadUrl(""); //URL needs to be entered in this line
return mainView;
}
}
希望这会有所帮助:)
答案 1 :(得分:1)
由于安全原因,这是不可能的。以前版本的Android允许使用系统级权限(大多数开发人员永远不会使用的权限),但它很少使用,据我所知,它不再在SDK中。
一些制造商实施其他功能,如三星的迷你应用程序(如果我记得正确的名称),可以在其他应用程序上方的浮动窗口中打开。您还可以使用服务(如Facebook Messenger)来绘制您自己的应用程序。但是没有办法强迫第三方应用程序执行任何这些操作。
但是,每次从应用程序打开应用程序时,新应用程序的进程都会将调用程序的进程指定为父进程。这允许您在某种程度上检查是否已从您的应用中打开此其他应用。
此外,您的应用在开设新应用时不会死亡,但只会在#34;以下#34;。如果您需要来自其他应用的某种数据,您可以启动它forResult
。这样其他应用就会知道"你期望得到一个定义的结果,所以它会处理一些数据并将它传回你的应用程序(在另一个数据完成准备结果后会重新出现)。
答案 2 :(得分:0)
有可能使用android属性
在AndroidManifest.xml(在activity元素中)声明您的活动时android:launchMode="singleTask
。
如果您这样做,如果您最小化您的应用并再次启动它(从背景或应用列表中的应用图标),它仍会显示新的应用。
我不确定结果是否符合您的预期效果。