如何使用Intent将外部android应用打开到新窗口?

问题描述

我有三种方法可以从我的应用程序中打开外部应用程序。

方法1:仅适用于使用URL方案打开和传递var的iOS。 iOS会强制在新窗口中打开外部应用程序-这样可以正常运行。

方法2:对于Android,使用URI调用(类似于方法1),但也允许在调用的应用中分配Android intents方法2起作用,除了方法2可以打开当前应用程序内部的外部应用程序,而不是在其自己的窗口中打开外部应用程序。

方法3:同样适用于Android系统,它使用一种更本地化的方法来打开外部应用程序并通过对象传递var(与URL参数相对)-此方法在新窗口中打开应用程序时效果很好。

我的问题是方法2 –如何在新窗口中打开应用程序,而不是在使用URI类型调用调用应用程序中打开应用程序。

  // startApp = cordova com.lampaa.startapp plugin

  var appScheme = "externalAppScheme://" ;

  function openApp (appScheme,urlInfo,params) {
    // Method 1 - iOS forces external apps to new window - works perfect.
    if (device.platform == "iOS") {
      var str = Object.keys(params).map(function(key) {
        return key + '=' + params[key];
    }).join('&');
    var sApp = startApp.set(appScheme + urlInfo + str) ;

  // Method 2 - opens & passes vars BUT in same app window
  } else if (schemeType == 1) {   
    var str = Object.keys(params).map(function(key) {
      return key + '=' + params[key];
    }).join('&');        
    var sApp = startApp.set({
      "action" : "ACTION_VIEW","intentstart" : "startActivity","uri" : appScheme + urlInfo + str,}) ; 

  // Method 3 - opens & passes vars in NEW window - works perfect
  } else {
    var sApp = startApp.set({
      "intentstart" : "startActivity","application" : "com.externalAppName"
    },params) ;
  }
  sApp.start(function() {  // success
}

对于方法2,我是否可以使用特定的ACTION或INTENT强制外部应用程序在新窗口中打开?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)