我正在尝试从我的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.');
};
}
}
答案 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
。