首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通用链接iOS

通用链接iOS
EN

Stack Overflow用户
提问于 2016-03-23 12:05:26
回答 3查看 3.6K关注 0票数 0

我有一些困难,让通用链接在我的应用程序工作。以下是我已经做过的事情。

-创建了我的apple-app-site-association文件这是我的档案

代码语言:javascript
复制
{

    "applinks": {
                "apps": [],
                "details": [{
                    "appID": "XXXXXXXXXX.com.companyName.app",
                    "paths": ["/view/*", "/class/*"]
                }]
            }
}

我没有签名我的文件,我把我的项目部署目标设置为iOS 9.2 (这样我就不必对这个文件进行签名)。

--在我的项目功能中添加了相关域

代码语言:javascript
复制
applinks:companyName.com
applinks:www.companyName.com

-关联域也在我的开发人员门户中启用

-更新供应配置文件并使用新配置文件

-增加了对建筑物的权利。

--推翻了此委托方法

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler

该文件可从我的HTTPS服务器获得,我从这个苹果验证器中检查了通用链接状态。https://search.developer.apple.com/appsearch-validation-tool/验证器正在验证这一点。但是当我点击iMessage中的链接并且链接类似于companyName.com/view/7375时,它就会在safari中打开,我的应用程序也不会收到任何回电。

你知道我错过了什么吗

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-23 12:21:51

这可能是操作系统现在考虑在“覆盖”模式下处理您的URL --为什么它会进入Safari。

当你的应用程序解析一个通用链接时,在屏幕的右上角你会看到"companyName.com -->“之类的东西。如果您点击这一点,这是操作系统“覆盖”通用链接的方式,并打开它在Safari在当时和永远。

试着重新进入消息应用程序,然后按下你的链接。一两秒钟后,您应该会看到一个操作表,它为您提供了诸如“在Safari中打开”和“在‘您的应用程序名中打开’”这样的选项。选择“在您的名字中打开”选项。然后,应该“重置”操作系统视图如何处理您的通用链接,现在将它们引导回您的应用程序。

票数 2
EN

Stack Overflow用户

发布于 2019-12-12 12:56:03

当您支持通用链接时,iOS 9用户可以点击一个链接到您的网站,并且可以无缝地重定向到您安装的应用程序,而无需通过Safari。如果你的应用程序没有安装,点击一个链接到你的网站打开你的网站在Safari。

在这里,如何设置您自己的服务器,并处理相应的链接在您的应用程序。

页面

在developer.apple.com注册你的应用程序。在应用程序标识符上启用“关联域”.

在Xcode项目中启用“关联域”

当您在developer.apple.com中的应用程序ID中启用关联域时,“向应用程序ID添加关联域功能”的错误就会消失,就像前面的步骤一样。如果它没有消失,退出并重新启动xcode几次,它就会工作。

添加适当的域权限,并确保在build中包含了“应享权利”文件: Xcode将自动完成此操作。

然后使用终端创建apple-app站点关联文件。

使用此命令创建AASA(apple-app-site-association)文件。

  1. cd桌面
  2. 触摸苹果-应用网站-协会

然后打开AASP文件并编写这个json格式的数据。

代码语言:javascript
复制
{
"applinks": {
    "apps": [ ],
    "details": [

        {
            "appID": "TeamID.BundleID2",
            "paths": [ "*" ]
        }
    ]
}
}

一旦您准备好了AASA文件,现在就可以承载https://<>/.well-known/apple-app-site-association了。

上传苹果应用网站关联文件到您的HTTPS网络服务器。您可以将该文件放置在服务器根目录或.知名子目录中。

(AASA)验证器转到以下链接并输入您的域名。它将检查AASA文件是否有效并可访问。链接:https://branch.io/resources/aasa-validator/#resultsbox

完成之后,将下面的代码添加到Appdelgate中

Swift4

代码语言:javascript
复制
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    print("Continue User Activity called: ")
    if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
        let url = userActivity.webpageURL!
        print(url.absoluteString)
        //handle url and open whatever page you want to open.
    }
    return true
}

目标-c

代码语言:javascript
复制
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
    if ([userActivity.activityType isEqualToString: NSUserActivityTypeBrowsingWeb]) {
        NSURL *url = userActivity.webpageURL;

        }

    return YES;
}

然后检查您的权限,添加到应用程序目标,并运行它将重定向到您的app.Make,确保AASA将验证像下面的屏幕,然后它重定向到您的application.If,任何错过,它不是重定向到您的应用程序。

在您的服务器中,任何内容类型验证错误都会出现,然后您可以创建一个.htaccess文件,在其中您可以编写以下代码。

代码语言:javascript
复制
<Files "apple-app-site-association">
ForceType 'application/json'
</Files>

这个程序从我这边起作用了,.I希望你方也能正常工作。如果你喜欢看这篇文章。

票数 1
EN

Stack Overflow用户

发布于 2017-11-24 09:31:30

您还必须实现以下AppDelegate函数。

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application willContinueUserActivityWithType:(NSString *)userActivityType

我也有过同样的问题。不幸的是,苹果并没有很好地记录这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36177732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档