微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用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 举报,一经查实,本站将立刻删除。