Ionic:启动外部应用程序

时间:2016-08-27 02:54:21

标签: cordova ionic-framework cordova-plugins

我正在尝试从我的Ionic应用程序中启动外部应用程序。例如,Instagram。我正在尝试使用Lampaa's Startap p插件,并且已经按照之前的几个示例进行了操作,但没有成功。

这是控制器内部的代码,在ng-click=""上调用。我试着在评论中解释每一步的尝试。我还想添加一个app.availability来检查应用程序是否已安装,但也无法解决如何执行此操作。谢谢!

$scope.onInstagramClick = function () {

// Check if
if (ionic.Platform.isAndroid()) {
// Using plugin com.lampa.startapp to launch the app for android
navigator.startApp.set({ 
    "package": "com.instagram.android",
}).start();

} else {
    if (ionic.Platform.isIOS() || ionic.Platform.isIPad()) {
               console.log('ios');
               navigator.startApp.set({ 
    "package": "instagram://",
}).start();
    } else {

         console.log('thisfailed.');
      };
    }
}

1 个答案:

答案 0 :(得分:2)

  $scope.onInstagramClick = function () {


if (ionic.Platform.isAndroid()) {
var sApp = startApp.set("com.instagram.android");
sApp.start(function() { /* success */
    console.log("OK");
}, function(error) { /* fail */
    alert("no Instagram found");
});

} else {
    if (ionic.Platform.isIOS() || ionic.Platform.isIPad()) {
var sApp = startApp.set("instagram://");
sApp.start(function() { /* success */
    console.log("OK");
}, function(error) { /* fail */
    alert("no Instagram");
});

}

在iPhone设备上测试过。我必须在XCode中做一些事情才能使它工作。即,编辑应用程序的info.plist以允许打开外部应用程序。 这是通过在LSApplicationQueriesSchemes中添加info.plist作为另一个属性来完成的,在这里您可以将“instagram”或​​任何应用添加为“项目”。此外,您需要确保App Transport Security Settings的布尔Allow Arbitrary Loads设置为YES