我们的通用链接已经运行很长时间了。今天我添加了 AASA 文件的路径(我们称之为 sub2)。即使重新安装后,该应用程序也无法识别该路径。
\n当我调试时,我注意到 applinks 服务正在获取文件,但请求没有进入我们的服务器。该服务确实获取了旧的 AASA 文件,因此苹果的 CDN 似乎正在缓存该文件。
\n调试:
\nAASA 文件有效:使用Branch Validator以及Apple 的 appsearch-validation-tool中的新 URL 进行测试
\n{\n "applinks": {\n "apps": [],\n "details": [\n {\n "appID": "redacted",\n "paths": [\n "/main/*",\n "/sub1/*",\n "/sub2/*",\n "/pagex-*"\n ]\n }\n ]\n },\n "activitycontinuation": {\n "apps": [\n "redacted"\n ]\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\nApple tool: tested https://redacteddomain/sub2/something\nLink to Application: Passed\nUniversal true\n...\n
Run Code Online (Sandbox Code Playgroud)\n文件未缓存在我们这边/Cloudflare:上面的验证器确认了这一点,但为了确保我也清除了缓存
\nIphone 控制台显示正在获取 AASA 文件:
\nBeginning data task AASA-64DCD3xx-xxxxx { domain: …
ios applinks branch.io ios-universal-links apple-app-site-associate
我的应用程序定义了意图过滤器来处理来自我的网站定义的URL
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="www.host.com" android:scheme="http"/>
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="www.host.com" android:scheme="https"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
该应用程序正确检测正确主机的URL,但查询用户是否在应用程序或浏览器中打开它们.我尝试使用此处指定的应用链接验证.https://developer.android.com/training/app-links/index.html
如我的服务器日志中所示,安装后,应用程序设备会查询/well-known/assetlinks.json,并以200状态响应.使用.测试数字资产文件
https:// digitalassetlinks.googleapis.com/v1/statements:list?source.web.site= https:// <domain1>:<port>&relation = delegate_permission/common.handle_all_urls
API并没有发现任何错误.
使用了获得assetlinks.json文件中的SHA256
keytool -list -v -keystore my-release-key.keystore
Run Code Online (Sandbox Code Playgroud)
应用程序签名的.keystore.
运行https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://<domain1>:<port>&relation=delegate_permission/common.handle_all_urls
返回链接验证状态为"ask",表示验证失败.为什么验证会失败?
我正在尝试为我的iOS和Android应用程序实现AppLinks:http://applinks.org
我做了以下事情:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
<meta property="al:ios:app_store_id" content="581815579"/>
<meta property="al:ios:app_name" content="iNacho" />
<meta property="al:ios:url" content="inacho://default" />
Run Code Online (Sandbox Code Playgroud)
我已经通过输入类似inacho:// default的链接并点击它创建的链接来验证网址方案是否有效.WA-LA!它打开我的应用程序.
但是,当我尝试从Facebook或Quip点击链接到www.nachorater.com时,这两个应用程序都没有自动通知该网站设置了这些应用程序链接,它只是在浏览器中加载网站而不是尝试打开我的应用程序.
有人有这个工作吗?
我有一个问题,一些元标记不在我的模板的<head>部分,我修复它.
现在来自iOS Facebook应用程序的链接:http://www.nachorater.com添加了一个漂亮的小弹出窗口,可以让你打开iNacho应用程序中的URL,如下所示:
但我的动态评论链接似乎没有用,但Ming指出的Debug应用程序显示meta标签看起来正确.
例如,http://www.nachorater.com/getReview?reviewID = 6396169718595584
我发布了一个新的nacho评论链接到我的iNacho Facebook时间线,然后尝试从Facebook Mobile应用程序点击它.
它开始加载页面并弹出方便的指示器,让你在iNacho中打开应用程序,但是一旦页面加载,指示器就会消失(在我点击它之前).
从Facebook应用程序,我现在可以为我的评论触发一个inacho URL,但这只是在我消失之前点击iNacho中打开的小弹出窗口.如果我在Facebook的内置Web视图中完全加载页面,那么小弹出窗口仍会消失.
这是Applinks的问题吗?或Facebook应用程序的问题?还是设计,为什么?
我可能知道问题是什么.审核页面依次为nacho评论加载动态图像.因此,通过加载页面,它有一个img src标记,指向加载图像的动态URL.这是否被误认为某种"重定向"行为?
img标签的示例(渲染): <img width="300" src="/getReviewImage?imageID=6125868501958656"></img>
注意:还有许多其他脚本/ ajax也会动态加载(Facebook和Twitter小部件等).
这是AppLinks或Facebook Mobile应用程序中的错误吗?它不应该关心背景加载像ajax和动态图像的对象吗?
2014年7月15日 - 最新的Facebook应用程序仍在发生这种情况.当我点击从我的iNacho Facebook页面到我的iNacho网站的链接时,它会弹出选项,在页面完成加载之前在应用程序中打开它一瞬间.然后它隐藏了它.
至于Twitter应用程序,它甚至不会给我弹出一瞬间.它似乎没有认识到链接是启用了appslink.
Quip,另一方面,我粘贴了一个nacho链接,当我第一次点击它时,它进入了内置的safari,无法在我的应用程序中打开.但是我第二次点击它,它直接打开了我的应用程序.
简介:到目前为止,似乎有些应用程序正在错误地实现AppLinks Navigation部分或其他内容.Quip似乎有效,但即使是Facebook自己的应用程序似乎也没有用.
我一直在尝试(不成功)使用Branch实现深入链接到我们的iOS应用程序.分支URL直接重定向到App Store,从不尝试打开应用程序.我肯定错过了什么.
我做了什么:
branch_key
到应用程序plistAssociated Domains
在项目和开发人员控制台中的App ID中启用.确保权利文件包含在构建中.
AppDelegate中注册的深层链接处理程序
仪表板:设置 - >链接设置:
Bundle Identifier和Apple App Prefix都设置正确.
在Branch Dashboard中的"Marketing"选项卡下,我创建了一个链接.我正在通过电子邮件将此链接发送给自己并在设备上打开它(Mail.app).Safari打开,然后打开App Store,就像没有安装应用程序一样.
既没有application:openURL:sourceApplication:annotation
也没有application:continueUserActivity:restorationHandler
被召唤.
AppDelegate方法:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let branch: Branch = Branch.getInstance()
branch.initSessionWithLaunchOptions(launchOptions, andRegisterDeepLinkHandler: { params, error in
if (error == nil) {
// params are the deep linked params associated with the link that the user clicked -> was re-directed …
Run Code Online (Sandbox Code Playgroud) 如何隐藏此<以编程方式从状态栏返回Safari?
我正在我的应用程序中获取它 - 因为如果用户想要使用他们的Facebook帐户登录,我将从我的应用程序中退出.
这是我不喜欢(想要)在我的应用程序中"返回Safari"的场景.
在iOS App Search Programming Guide的Universal Links部分中,Apple说:
如果您实例化SFSafariViewController,WKWebView或UIWebView对象以处理通用链接,iOS将在Safari中打开您的网站,而不是打开您的应用程序.但是,如果用户从嵌入式SFSafariViewController,WKWebView或UIWebView对象中点击通用链接,iOS将打开您的应用程序.
"处理通用链接"是什么意思?我不能永远打开给定的URL与SFSafariViewController
,WKWebView
或UIWebView
?它是否仅适用于期间-[UIApplicationDelegate application:continueUserActivity:restorationHandler:]
,或是否存在超时?这是否意味着在我们永远不能打开的URL SFSafariViewController
,WKWebView
或UIWebView
?
我已经做了一些探索并找到了以下内容,这是我到目前为止所做的:
在我的AppDelegate.m中实现了以下功能
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
Run Code Online (Sandbox Code Playgroud)在我的AppDelegate.m中添加了以下代码
//Initialization
[FBAppEvents activateApp];
[FBSettings setClientToken:@"ca45a3a2133ae2f37ebd4d90408816e6"];
//Function to check for deferred deep link and call the method with recieved url
[FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url,NSError *error){
if(url)
[self application:nil openURL:url sourceApplication:nil annotation:nil];
}];
Run Code Online (Sandbox Code Playgroud)如果我错过了提取延迟深层链接的内容,请告诉我.另外,如何在将iOS APP发布到appStore之前测试相同内容.
我正在开发一个社交机器人琐事游戏.当用户向未安装我的琐事游戏的朋友挑战游戏时,我想向他发送自定义URL以从市场下载包含邀请用户ID参数的应用程序.
当应用程序第一次运行时,我需要能够接收传递给市场的参数,以便识别用户并向他展示他受到挑战的游戏.我无法弄清楚如何使用应用程序链接执行此操作,但没有找到任何适当的示例.
任何帮助都会受到极大的欢迎!谢谢,Ido
我开发了一个即时应用程序并将其发布到游戏商店,还有一个与Instant App相关联的网站.从这里测试了测试工具的app链接 .
点击其他应用程序(gmail,环聊)中的链接后打开该应用程序,但是从谷歌搜索点击我的网站是打开网页而不是即时应用程序.为了将网页从Google搜索重定向到应用,我还有什么需要做的吗?
我在Play商店发布了我的即时应用程序.当我点击gmail的链接时,它会在某些设备中以即时应用程序的形式打开(三星s6 note,moto g4 plus)
在某些设备上,它不能作为即时应用程序打开,但buzzfeed.com/tasty作为即时应用程序打开.(一加3加一加5).
我的数字资产链接是https://abdcoop.mybuzztm.com/.well-known/assetlinks.json
谁能够建议我缺少什么?
android deep-linking android-app-indexing applinks android-instant-apps
如果用户在Facebook应用中点击深层链接时未安装我的应用,如何获取应用链接数据?在这个问题上,Facebook的文档很少令人惊讶.
我有一个很深的联系 https://fb.me/635533123230265
哪个返回HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>App Link</title>
<meta property="fb:app_id" content="619350481515196">
<meta property="al:android:url" content="instapanel://panel?utm_source=fb&utm_medium=cpi&utm_term=sf&utm_campaign=PROPE">
<meta property="al:android:package" content="com.instapanel.android">
<meta property="al:android:app_name" content="Instapanel">
<meta property="al:web:should_fallback" content="false">
<meta http-equiv="refresh" content="0;url=http://play.google.com/store/apps/details?id=com.instapanel.android">
</head>
<body>Redirecting...</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果已安装该应用程序,则AppLinkData appLinkData = AppLinkData.createFromActivity(activity);
运行正常.
但如果没有安装应用程序,我相信我应该使用AppLinkData.fetchDeferredAppLinkData
.我可以验证在facebook SDK中它发出HTTP请求并接收JSON,但它永远不会包含深层链接{"success":true}
.有任何想法吗?
这是我的代码:
// Fetch data immediately.
AppLinkData appLinkData = AppLinkData.createFromActivity(activity);
App.setAppLinkData(appLinkData); // Handles appLinkData
// In case data is deferred because app wasn't installed yet.
AppLinkData.fetchDeferredAppLinkData(activity, …
Run Code Online (Sandbox Code Playgroud) applinks ×10
ios ×6
android ×5
facebook ×3
branch.io ×2
deep-linking ×2
google-play ×1
ios9 ×1
meta-tags ×1
objective-c ×1
uistatusbar ×1
uiwebview ×1
wkwebview ×1