标签: deep-linking

哈希标志后获取请求部分

我的网站采用AJAX驱动的搜索,使用深层链接.当用户关注链接时......

http://example.com/articles#/?tags=Mac%20OS,review
Run Code Online (Sandbox Code Playgroud)

...标签"Mac OS"和"评论"应该已经在搜索表单中选择,并且应该在页面上显示与"Mac OS"和"评论"相关的文章.

我有以下场景,需要修复

  1. 用户可以访问http://example.com/articles#/?tags=Mac%20OS链接
  2. 在初始页面呈现期间,将获取所有文章
  3. 在客户端,解析散列部分,并且仅通过AJAX请求与"Mac OS"相关的文章.
  4. 客户端接收"Mac OS" - 文章并替换在步骤2中获取的所有文章.此外,它还在搜索表单上标记"Mac OS"标记.

这里的问题 - 是重复的文章渲染,对用户来说看起来非常糟糕.他查看所有文章,几秒钟后,他们将被"Mac OS"替换.

我需要有以下场景:

  1. 用户可以访问http://example.com/articles#/?tags=Mac%20OS链接
  2. 服务器解析散列部分并返回与"Mac OS"相关的文章
  3. 客户理解,"Mac OS" - 文章已经存在并且什么都不做.它只是将"Mac OS"标记标记为已选中.

为此,我需要获取请求字符串的哈希部分:

/?tags=Mac%20OS
Run Code Online (Sandbox Code Playgroud)

我之后不能使用请求参数,因为我使用AJAX和深层链接.使用?-part,浏览器将被强制重新加载页面.我需要做任何事情而不重新加载页面.

非常感谢您的帮助.

谢谢.

ajax asynchronous ruby-on-rails request deep-linking

11
推荐指数
1
解决办法
4940
查看次数

从深层链接中排除少数网址

我可以在我的Manifest中的intent-filter中使用以下过滤器成功实现app的深层链接:

   <data  android:host="myhost.com"
    android:pathPrefix="/v"
    android:scheme="http" />
Run Code Online (Sandbox Code Playgroud)

例如.我的网址是:

 http://myhost.com/v/login1.php?id=123&name=abc&type=a
 http://myhost.com/v/login1.php?id=123&name=abc&type=b
Run Code Online (Sandbox Code Playgroud)

我想排除

http://myhost.com/v/login1.php?id=123&name=abc&type=c
Run Code Online (Sandbox Code Playgroud)

现在我想要排除几个具有相同前缀的Url.是否可能或我是否需要明确指定所有网址android:path?如果是这样,如何处理查询参数的值?

android deep-linking

11
推荐指数
2
解决办法
5962
查看次数

iOS的Branch.io链接在安装后不传递数据,但适用于冷启动

我有几个分支链接,旨在深入链接到我的iOS应用程序并将图像预加载到UIImageView.它们在安装应用程序时可以正常工作,无论它是在后台还是已经终止.但是,如果尚未安装该应用程序,它们将无法运行.它们正确链接到应用程序商店,但是一旦安装了应用程序,参数似乎无法正确流动.

我说参数没有SEEM流过,因为我找不到测试方法,因为我认为没有办法在Xcode中通过deeplink模拟一个全新的应用程序安装.我知道我可以在没有应用程序自动启动的情况下从Xcode构建到我的手机,然后单击深层链接,但到那时,应用程序已经安装在我的手机上,因此它违背了测试的目的.如果有人知道通过deeplink测试应用程序安装的方法,我很乐意接受这些信息并与它一起运行一段时间......

这是一个深层链接的例子,它应该将图形加载到衬衫设计中:

https://bnc.lt/l/5wGbOak_QW

有没有人知道Branch在安装后没有正确发送数据的任何已知问题?

编辑:这是我现在在appDelegate分行代码中得到的内容.我无法证明url没有设置,但HomeViewController没有像非安装后启动那样下载链接图像.就像我之前提到的,我不知道如何模拟这种情况,因为Xcode模拟器总是先安装,所以我没有机会模拟单击预安装链接.

let branch: Branch = Branch.getInstance()
    branch.initSessionWithLaunchOptions(launchOptions, andRegisterDeepLinkHandler: { params, error in
  if (error == nil) {
    if let url = params["product_picture_url"] as? String {
      let url = NSURL(string: url)!
      HomeViewController.injectedImageUrl = url
    }
  }      
})
Run Code Online (Sandbox Code Playgroud)

xcode deep-linking ios branch.io

11
推荐指数
1
解决办法
3448
查看次数

CustomTabs在302重定向后显示ERR_UNKNOWN_URL_SCHEME

我正在尝试使用自定义选项卡实现OAuth2登录流程,但在登录成功后,将使用以下URL检索302重定向:"my.app:/oauth2/code?xxx".

现在我在AndroidManifest中声明了重定向URI来监听这个,但是看到ERR_UNKNOWN_URL_SCHEME:/

<intent-filter>
            <data
                android:host="oauth2"
                android:scheme="my.app"
                android:pathPrefix="/code"
            />

            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的url方案来听,但似乎没有触发打开我的应用程序.

android deep-linking uri-scheme chrome-custom-tabs

11
推荐指数
1
解决办法
330
查看次数

Android和Deep Links中的多个导航图

我有3个活动:主要,登录,向导.

对于每个Activity,我都有单独的导航图和片段目的地.

主导航图还具有登录活动目的地,以便在注销时启动登录屏幕.

Action.MAIN启动器意图启动时,应用程序似乎正常工作.

但是在使用Deep Link时遇到问题.我想将URI添加到Login Nav Graph(更改密码片段).此导航图使用单独的NavHostFragment.我用过2种方法.

  1. 在登录导航图中直接添加深层链接到更改密码片段目的地 - >深层链接仅导航到START DESTINATION(登录片段目的地).这里也退回按钮不能正常工作,即完成应用程序而不是返回主导航图主要目的地.
  2. 将Deep Link添加到Login Activity Destinationin Main Nav Graph和again,这里Back按钮确实正常工作,我按预期登陆Login Fragment Destination.但在这里我想手动导航到更改密码片段目的地,我遇到另一个问题,即Intent Action.View与Uri数据不会传递到此登录活动目的地.它仅传递给主要活动,主要活动主持人.

总结一下.我认为由活动目的地连接的多个导航图之间的深层链接行为不能正常工作.我不知道是否有任何解决方案.

我能以某种方式从NavController检索Deep Link Arguments(Uri数据)吗?或者唯一的解决方案是从getIntent().data获取它?在这里,正如我所说,这个Intent不会转发到最终目标Activity,而只会转移到创建的Activities堆栈中的第一个Activity.

现在我回到手动处理没有Android导航架构的Deep Links,因为如果有比单个Nav Graph更复杂的导航结构,单个Activity并且只有内部Fragment导航,它似乎毫无用处.

android deep-linking android-navigation

11
推荐指数
1
解决办法
1206
查看次数

Android 应用链接 - 在浏览器中从应用打开 url 而不触发应用链接

我在我的应用程序中启用了应用程序链接。它工作正常。但是在我的应用程序中有一些场景我无法处理传入的 url。在这些情况下,我想将该 url 重定向到设备中的默认浏览器。

目前我尝试做的是使用意图打开带有 url 的浏览器,但它再次重定向到我的应用程序本身。应用程序链接的格式 ->

https://<domain>/<prefix>/<params>
Run Code Online (Sandbox Code Playgroud)

因此,根据参数,我想处理应用程序本身中的应用程序链接或将其重定向到默认浏览器。以下是我尝试使用上述网址打开浏览器的代码

val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(appLinkModel.url))
browserIntent.addCategory(Intent.CATEGORY_APP_BROWSER)
browserIntent.resolveActivity(packageManager)?.let {
    startActivity(browserIntent)
}
Run Code Online (Sandbox Code Playgroud)

我尝试排除 addCategory() 行,但结果是一样的。应用程序崩溃(因此出现了 resolveActivity()),或者应用程序在循环中自行打开。

我想做的事

所以我想要做的是将 url 重定向到默认浏览器(或显示一个没有我的应用程序的选择器),而不是一次又一次地触发应用程序链接。那么这可能吗?

android deep-linking android-app-links

11
推荐指数
2
解决办法
7305
查看次数

如何在没有 firebase 的情况下在 flutter 中进行深度链接?

我有一个 Netflix 模型应用程序,我想与其他人分享电影内容,如果接收者有该应用程序,那么内容应该在他/她的应用程序中打开,或者如果应用程序不存在,则访问网站。

我尝试使用 Firebase,但效果不太好,所以我尝试在 flutter 中使用 uni_links,但这是我第一次使用它,没有找到太多关于它的教程。

下面是我的代码,它纯粹是在 flutter 中,并使用共享小部件来共享内容。

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:share/share.dart';
import 'package:uni_links/uni_links.dart';

// Share tab
enum UniLinksType { string, uri }

class SharePage extends StatelessWidget 
{
    SharePage(this.shareType, this.share, this.image);
    final shareType;
    final VideoDataModel share;
    final image;

    String latestLink;
    Uri latestUri;

    StreamSubscription sub;
    UniLinksType type = UniLinksType.string;

    initPlatformState() async
    {

        if(type == UniLinksType.string)
        {
            await initPlatformStateForStringUniLinks();
        }
        else
        {
            await initPlatformStateForUriUniLinks();
        }
    }

    initPlatformStateForStringUniLinks() async
    {
        sub = getLinksStream().listen((String link)
        {
            latestLink …
Run Code Online (Sandbox Code Playgroud)

share widget package deep-linking flutter

11
推荐指数
1
解决办法
4158
查看次数

如果已安装则通过深层链接打开Android应用程序,如果未安装,则回退到Web

我正在尝试创建一个自动打开Android应用程序的网页,但仅在安装了应用程序的情况下.万一它不应该重定向到另一个网页.

该应用程序已经投入生产,正在正确处理深层链接example://content?id=42.链接的格式无法更改.

我已经尝试过的

1)重定向和超时:

window.location.replace('example://content?id=42');
setTimeout(function() {
    window.location.replace = 'http://example.com/content?id=42';
}, 500);
Run Code Online (Sandbox Code Playgroud)

适用于iOS,但对于Android,它会example://立即重定向,因此给了我ERR_UNKNOWN_URL_SCHEME.似乎不适合Android.

2)iframe方法.在rencent Chrome版本中不可能.也似乎不适用于三星浏览器.

3)关联结构S.browser_fallback_url.效果很好但仅限Chrome.在Opera和三星浏览器中不起作用......除了Chrome 25+之外,其他任何地方都没有.

javascript android deep-linking

10
推荐指数
1
解决办法
5529
查看次数

我在哪里可以在 google play 控制台上找到 assetlinks.json 的密钥库 sha256?

我的知名文件夹中有 assetlinks.json 文件。我在哪里可以找到 sha256_cert_fingerprints?

[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.mobile.droid",
      "sha256_cert_fingerprints": [
        "where I can find it in google play console"
      ]
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我猜这是“应用程序签名证书”。这是正确的吗?

android deep-linking

10
推荐指数
2
解决办法
2419
查看次数

如果未安装应用,则重定向到应用商店

场景是用户将获得指向其电子邮件的链接。如果用户点击链接,如果应用程序已经安装,应用程序应该打开,如果应用程序没有安装它应该重定向到应用程序商店。

我已经看到了深层链接的实现,但我相信它也需要在后端进行更多的实现。任何人都可以对此提供帮助吗?

如果已安装,则重定向到应用程序,否则重定向到 App Store

经历了这一切。有没有更好的办法?

为另一种场景添加了 gif:

在下面的 gif 中,从电子邮件到应用程序直接导航?如何?

在此处输入图片说明

deep-linking ios

10
推荐指数
1
解决办法
1万
查看次数