标签: deep-linking

从另一个(iPhone)启动应用程序

是否可以从另一个应用程序中启动任意iPhone应用程序?例如, 在我的应用程序中,如果我希望用户按下按钮并启动到手机应用程序(关闭当前应用程序,打开手机应用程序).

这有可能吗?我知道可以使用tel URL链接拨打电话,但我想改为启动Phone应用而不拨打任何特定号码.

iphone deep-linking openurl ios

165
推荐指数
11
解决办法
19万
查看次数

Android 应用程序链接在 Android 12 中不起作用,始终在浏览器中打开

我已将 assetlinks 文件托管到我们的域 https://ourdomain/.well-known/assetlinks.json 并且还使用https://developers.google.com/digital-asset-links/tools/generator和 android studio验证了这一点应用程序链接助手并从这两种方式获得了验证状态。但是当我共享调试 APK 进行测试时,它总是在浏览器中打开。我还尝试在应用程序商店上传并从那里下载进行测试,但它总是在浏览器中打开。

注意:对于调试构建,使用了我的笔记本电脑 SHA-256,一旦 Play 商店上的应用程序将托管资产链接文件上的 SHA(通过转到 Play 控制台中的应用程序仪表板然后发布管理 --> 应用程序签名获得 SHA-256)更改为我们的域 https ://ourdomain/.well-known/assetlinks.json

以下是清单文件中使用的代码。


     <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:scheme="https"
                android:host="abc.test.com" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

android deep-linking kotlin android-deep-link android-app-links

67
推荐指数
7
解决办法
6万
查看次数

Facebook iPhone应用程序支持的所有自定义URL方案是什么?

注意

这些网址可能无法使用.
Facebook已经多次更新,并没有正式支持任何这些.

/注意

我正在尝试查看有关iPhone上的Facebook应用程序的可用信息.到目前为止,我已经发现含有有限信息的夫妇的网站,我能找出Facebook的个人主页发布命令(遗憾的是它保持窗口打开后,您交的-那么,谁发布到Facebook的人有推一次,然后取消).

我的问题是,是否有人有关于可以发送到Facebook应用程序的命令的任何更多信息?

我可以从http://wiki.akosma.com/IPhone_URL_Schemes获取以下信息

  • fb://profile - 打开Facebook应用程序到用户的个人资料.
  • fb://friends - 打开Facebook应用程序到朋友列表.
  • fb://notifications - 在通知列表中打开Facebook应用程序(注意:此URL似乎存在错误.通知页面打开.但是,无法导航到Facebook应用程序中的任何其他位置)
  • fb://feed - 向新闻Feed打开Facebook应用程序.
  • fb://events - 在"活动"页面上打开Facebook应用程序.
  • fb://requests - 在"请求"列表中打开Facebook应用程序.
  • fb://notes - 在Notes页面中打开Facebook应用程序.
  • fb://albums - 打开Facebook应用程序到相册列表.

这些命令只打开相应的窗口.我找到的第一个有用的命令是

  • fb://publish/profile/#ID#?text=#BODY#

这是Facebook图形api和我在其他应用程序中找到的其他一些信息的组合.然后有点捅和希望.

替换#ID#为您要发布到的个人资料的ID,然后替换#BODY#为您要发布到的文本,并且该窗口显示在Facebook应用中,并且预先填充了文本.

您还可以使用meid作为id发布到已登录用户的个人资料.

如果有人知道我正在尝试与它接口并希望尽可能多的信息.

iphone facebook deep-linking undocumented-behavior facebook-graph-api

65
推荐指数
3
解决办法
8万
查看次数

Android深层链接:为应用和Play商店使用相同的链接

我有一个网站,使用户可以进行搜索查询.查询可能需要一些时间才能完成(几分钟到几天),我希望用户能够通过发送带有用户链接的电子邮件来下载Android应用并在那里收到答案.

无论用户是否安装了应用程序,我都希望这种机制能够运行; 换一种说法:

  • 如果用户有应用程序,则应使用包含标识符参数的深层链接打开它.
  • 如果用户没有它,它应该在应用程序页面上打开游戏商店(例如https://play.google.com/store/apps/details?id=com.bar.foo&referrer=BlahBlah),让用户安装它,并使用identifier参数打开应用程序.

在此输入图像描述

有没有办法形成一个链接,打开一个带有参数的Android应用程序,无论是否安装该应用程序都可以使用?

android deep-linking

52
推荐指数
3
解决办法
4万
查看次数

如果应用程序已通过深层链接打开,则Android深层链接无效

如果已通过深层链接打开应用程序,则深层链接不起作用.

但是,如果我打开应用程序而不是通过触发深层链接,例如单击应用程序图标以打开应用程序.然后在之后触发deeplink将始终有效.


这里有详细信息:

所以我在AndroidManifest中设置了这样的活动,即LaunchActivity.

<activity
    android:name="some.package.name.LaunchActivity"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.SomeTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="dlscheme" android:host="dlhost" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

在LaunchActivity中,我会在onCreate()中打印一个日志,表明它已存在.

我用了

adb shell am start -W -a android.intent.action.VIEW -d "dlscheme://dlhost/param" some.package.name
Run Code Online (Sandbox Code Playgroud)

测试深层链接.

随着应用程序被杀,我使用了上面的命令.它可以打开应用程序并路由到正确的活动,没问题.并有以下日志.

adb shell am start -W -a android.intent.action.VIEW -d "dlscheme://dlhost/param" some.package.name
Starting: Intent { act=android.intent.action.VIEW dat=dlscheme://dlhost/param pkg=some.package.name }
Status: ok
Activity: some.package.name/.activity.LaunchActivity
ThisTime: 898
TotalTime: 898
WaitTime: 919
Complete
Run Code Online (Sandbox Code Playgroud)

但是,如果我再次输入相同的命令,而不会杀死应用程序.它只会打开应用程序,但它不会打开正确的活动,并生成以下日志.

adb shell am start -W …
Run Code Online (Sandbox Code Playgroud)

android deep-linking

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

深层链接意图不起作用

我按照https://developer.android.com/training/app-indexing/deep-linking.html上的说明进行操作,但是当我想触发意图adb时:

adb shell am start
           -W -a android.intent.action.BROWSEABLE
           -d "http://example.com/gizmos" com.myapp.android
Run Code Online (Sandbox Code Playgroud)

我得到了

Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=example://gizmos flg=0x10000000 pkg=com.myapp.android }

<activity
        android:name=".activities.DeepLinkActivity"
        android:label="@string/title_activity_deep_link">
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />

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

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:scheme="http"
                android:host="example.com"
                android:pathPrefix="/gizmos" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

我有任何明显的错误吗?

android deep-linking android-manifest android-intent

51
推荐指数
4
解决办法
6万
查看次数

深层链接和多个应用实例

我在我的应用中实现了深层链接.我在清单文件中添加了此intent过滤器,并且深层链接正在运行.

<intent-filter>
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <category android:name="android.intent.category.VIEW" /> 
    <data
        android:host="www.mywebsite.com"
        android:pathPrefix="/something"
        android:scheme="http" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

问题是通过深度链接,我的应用程序将在当前应用程序之上启动.如果我在Gmail中并点击了一个链接,那么我的应用就会在Gmail上启动.我想以不同方式启动我的应用程序.

如果我的应用已经在后台运行,我点击Gmail中的一个重定向到我的应用的链接,我将同时运行两个应用实例; 一个在后台,另一个在Gmail之上.我想一次只运行我的应用程序的一个实例,因此它不在当前应用程序(Gmail)之上.我怎样才能做到这一点?

android deep-linking

48
推荐指数
3
解决办法
2万
查看次数

在iOS中推迟深层链接

我们正在尝试在我们的某个iOS应用程序中实施延迟深层链接,以鼓励用户邀请他们的朋友使用该应用程序,并根据他们的推介链接发生的安装数量来奖励用户.基本上类似于TapStream的产品.

考虑这个例子:

因此,UserA在他们想要的任何网络上分享他们的链接"ourappURL.com/refer?id=userA".UserB单击该链接,将其带到Safari,然后将它们退回到UserB下载应用程序的App Store页面.

当UserB打开应用程序时,应用程序会检查它们所引用的引荐ID(如果有).在此示例中,引荐ID将是"userA",因为它是引用链接中的ID.该应用程序然后将此发送到我们的服务器,我们授予UserA一个推荐信用.

我试图将这个问题分解为其核心部分.我相信第一部分是获取用户引荐链接的网页,以将引荐ID保存到应用可以访问它的某个地方的设备.但由于iOS的沙盒特性,我不确定这是否可行.

我知道这基本上是可行的,因为许多广告提供商都能够跟踪广告系列的安装情况(例如,请参阅移动应用跟踪).

deep-linking ios

44
推荐指数
3
解决办法
2万
查看次数

Android深度链接具有多个查询参数

我正在尝试深层链接我的应用程序,并在我的AndroidManifest.xml中实现了以下内容以打开正确的活动.

<activity
    android:name=".ui.activities.MyActivity"
    android:label="@string/title_activity"
    android:screenOrientation="portrait">
    <!-- ATTENTION: This intent was auto-generated. Follow instructions at
    https://g.co/AppIndexing/AndroidStudio to publish your Android app deep links. -->
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- ATTENTION: This data URL was auto-generated. We recommend that you use the HTTP scheme.
        TODO: Change the host or pathPrefix as necessary. -->
        <data
            android:host="myHost"
            android:scheme="myCustomScheme" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

我正在使用adb测试活动

adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test" com.myApp.android
Run Code Online (Sandbox Code Playgroud)

Activity正在打开,但只传递给intent中活动的URI

myCustomScheme://myHost?key=category_parent_id
Run Code Online (Sandbox Code Playgroud)

它在"&"后跳过一切

我确实在SO上查找但没有找到任何有多个查询参数的东西.

任何帮助,将不胜感激.:)

android deep-linking adb

44
推荐指数
2
解决办法
2万
查看次数

iOS系统在打开App Store URL之前挂起

  1. 我有一个带有下载应用按钮的HTML页面.当iOS用户点击时,它会通过itms-services将用户重定向到App Store.我在这里使用的链接是:

    window.location.replace("itms-apps://itunes.apple.com/app/id578505616");
    
    Run Code Online (Sandbox Code Playgroud)

    它在移动浏览器上看起来像这样: 移动网页下载按钮

  2. Facebook/Pinterest有一个应用程序内浏览器,要求用户同意,然后以"取消"或"打开"应用程序的"警报"框的形式将用户重定向到他们的应用程序,Open应用程序打开外部链接.它看起来像这样: 移动网页,其中嵌入了Facebook下载按钮

警报框看起来像这样: FB嵌入式浏览器带警报框

假设用户正在使用iOS设备.此处的预期行为是单击"打开"应用程序按钮时,用户将被重定向到App Store应用程序.但是,在实际重定向发生之前,我们看到了大约10秒的延迟.

观看以下视频:

https://www.youtube.com/watch?v=_dgh7v-IsK8

https://www.youtube.com/watch?v=_LFHeRnBFgg

https://www.youtube.com/watch?v=82Y-kj-pMyw

笔记:

  1. 我似乎无法在任何时候重现这一点.它有时只能重现.抱歉!
  2. 一旦设备第一次延迟,所有后续到AppStores的链接都会很快,直到大约延迟一天.重新启动手机和/或清除浏览器缓存和/或重新安装Facebook/Pinterest无助于重现这一点.
  3. 我尝试用https://itunes.apple.com/us/app/trusper-tips-tutorials-how/id578505616?mt=8替换itms-apps://链接,但我们仍然遇到延迟时间时间.
  4. 延迟似乎正好是10秒.

为什么会出现这种延迟?这似乎是一个糟糕的用户体验.

我目前的理论是问题出在苹果方面.原因是,一旦点击打开应用程序按钮,它就不在我们网站的手中,以及Facebook/Pinterest应用程序.我认为,一旦点击按钮,iOS就会处理从一个应用程序到另一个应用程序的实际上下文切换.因此,它表明系统调用实际打开URL是挂起,或系统调用打开App Store应用程序是?? 但是,我无法证明任何一个是真是假.有没有人有更好的解释?

[编辑04/02/2015]我可以确认此问题在我的手机上仍然存在(iPhone 5S w/iOS 8.2).我做了一些进一步的研究,发现这篇文章我认为这是一个与iOS系统相关的错误:OpenUrl冻结app超过10秒

objective-c deep-linking app-store openurl ios

39
推荐指数
1
解决办法
1141
查看次数