openvpn ios客户端自定义URL方案

时间:2013-08-28 14:38:23

标签: ios openvpn openurl

我的应用有iOS OpenVPN Connect 应用依赖。

所以我必须检查应用程序是否已经安装

如果是这样,我将使用OpenURL方案打开应用程序,否则我将打开其appstore链接,以便用户安装它。

所以我的问题是我找不到与此应用相关联的任何打开的网址。

感谢任何帮助!

6 个答案:

答案 0 :(得分:2)

它导出一个doctype。所以你可以使用UIDocumentInteractionController来检查是否可以打开文件类型,从而安装了应用程序。

uti net.openvpn.formats.ovpn

将该类型的文件(您可以在OSX上创建此类文件)复制到该包并尝试使用 presentOpenInMenuFromRect

为其呈现交互控制器

将自己设置为委托,如果它触发了willShowMenu,那么你没有应用程序在那里 - 并且你关闭了菜单。

所以为了让你开始这样的事情:

NSString *file = ... //path to file with UTI in question 
UIDocumentInteractionController *c = ... //init with file
c.delegate = self;
_hasAppInstalledForUTI = NO;
[c present...];

if(!_hasAppInstalledForUTI) {
    //act
}

...

- willPresentOpenInMenu {
    [c dismissAnimated:NO];
    _hasAppInstalledForUTI = YES;
}

顺便说一句:我检查了应用程序 - 没有网址方案。

答案 1 :(得分:1)

虽然听起来可能比较厚重,但我认为一种方法是给开发人员发电子邮件,询问他们是否有URL方案,或者是否会为其创建支持。它是双赢的,因为如果可以以新的方式利用它们的软件,它们更有可能被安装,并且您将获得所需的功能。

答案 2 :(得分:0)

要检查用户是否拥有该应用,您可以执行以下操作:

NSURL *url = "appScheme://"
if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url];
}
else {
    // can't open url
}

但并非所有应用都有网址方案。我知道我不知道。

如果您无法在网上找到任何内容,那么很可能没有。尝试联系开发人员,看看是否有一个开始,否则尝试找另一个有一个的应用程序,并使用那个。

答案 3 :(得分:0)

您尝试打开.ovpn文件。

这是我自己的old question,让你开始学习如何做到这一点。

Source

虽然这不是专门检查那个特定的应用,但它应该可以胜任。

答案 4 :(得分:0)

我想你想从你的应用程序中打开“openvpn ios”应用程序。请检查以下链接:

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-working-with-url-schemes/

按照说明的步骤操作,检查是否打开了应用程序。

答案 5 :(得分:0)

openvpn://中引入了对OpenVPN Connect 1.0.6网址方案的支持,根据OpenVPN Connect FAQ,您可以使用此代码:

BOOL installed = [application canOpenURL:[NSURL URLWithString:@"openvpn://"]];

以下代码打开iTunes以安装OpenVPN Connect(如果尚未安装):

UIApplication * app = [UIApplication sharedApplication];
BOOL installed = [app canOpenURL:[NSURL URLWithString:@"openvpn://"]];
if (installed) {
    [app openURL: [NSURL URLWithString:@"openvpn://"]];
} else {
    [app openURL: [NSURL URLWithString: @"https://itunes.apple.com/app/id590379981?mt=8"]];
}

EDITED:实际上这种方法不会工作,我刚刚测试过自己 - 问题是AppStore中OpenVPN Connect的已发布版本是 1.0.5 ,所以这个功能不可用((