我正在尝试从 Safari 中的链接打开我的 native iPhone 应用程序。我关注了this link创建一个 url 模式。我在 URL 类型下添加了 appgo://
作为我的 url schema 和 com.xxxx.appgo 作为标识符。以下是我在 safari 网页中的链接:打开 iPhone 应用程序
但是,当我单击该链接时,该应用程序无法打开,并且 safari 会发出错误警报:Safari 无法进入该页面,因为地址无效。
我的包标识符:com.xxxxx.abc 注意:我的包标识符与 URL 类型中的标识符不同。这会成为问题吗?
编辑: 我已经使包标识符和 url 标识符相同。我还在我的应用委托(delegate)中添加了以下代码:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
NSLog(@"application");
BOOL returnValue = NO;
NSString *urlString = [url absoluteString];
if([urlString hasPrefix:@"com.xxxx.appgo"]){
returnValue = YES;
}
return returnValue;
我正在我的 iPad 上测试它。我首先从 xcode 安装最新版本的应用程序,然后按主页按钮,然后在 safari 中打开链接。但我仍然收到警告,说 Safari 无法进入页面,因为地址无效。我在 safari 中的链接:
<a href="appgo://">Open iPhone App</a>
最佳答案
在应用委托(delegate)中实现
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
BOOL returnValue = NO;
NSString *urlString = [url absoluteString];
if([urlString hasPrefix:@"appgo://"]){
returnValue = YES;
}
return returnValue;
}
编辑: 添加到你的 info.plist 文件中
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.xxxx.appgo</string>
<key>CFBundleURLSchemes</key>
<array>
<string>appgo</string>
<string>yourSecondScheme</string>
</array>
</dict>
</array>
关于iphone - 从 safari 中的网络应用程序中的链接打开 iphone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15610512/