iphone - 从 safari 中的网络应用程序中的链接打开 iphone 应用程序

标签 iphone ios mobile-safari

我正在尝试从 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/

相关文章:

iphone - 从UIButton获取位置坐标

ios - 来自按钮的核心数据对象操作

javascript - 每个版本的 iOS 附带什么版本的移动版 Safari?

ios - Apple-app-site-association : banner displays while no file in server

ios - 在 iOS 8 上使用 UIView 动画 OptionTransitionFlipFromLeft 的动画查看丢失的角半径

iphone - 新版本App内购

javascript - 作为 native 应用程序运行的 iPhone 网络应用程序

ios - 文件名字符串在不带@符号和带@符号的情况下使用

objective-c - 释放按引用返回的 NSString 会导致崩溃

javascript - Mobile Safari 的 jQuery 动画性能