我遵循了https://developer.android.com/training/app-indexing/deep-linking.html上的insttructions,但当我想通过adb
触发意图时:
adb shell am start
-W -a android.intent.action.BROWSEABLE
-d "http://example.com/gizmos" com.myapp.android
我只是得到
错误:activity未启动,无法解析意图{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>
我犯了什么明显的错误吗?
编辑:
Ok首先确保您的软件包可由ADB访问:
adb shell am start -n com.example.simon.test/.activities.MainActivity
然后,为了接受多个数据标记,您需要不同的意图过滤器(这是我的工作方式,不同于我在网上看到的所有其他示例)。例如:
<intent-filter>
...
<data android:scheme="http"
android:host="example.com"/>
</intent-filter>
<intent-filter>
...
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/gizmos"/>
</intent-filter>
注意,在上面的示例中,pathPrefix以正斜杠开头!
我不知道为什么谷歌的文档会如此误导人,或者可能是针对不同版本的adb,但上面的更改对我来说是完美的。这有所帮助:来源
这就是我如何让Chrome浏览器将特定链接路由到我的应用程序:
<activity
android:name=".activities.DeepLinkActivity"
android:label="@string/app_name">
<!-- Accept chrome links -->
<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="/"/>
</intent-filter>
<!-- Accept adb data flag -->
<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"/>
</intent-filter>
</activity>
注意,第一个过滤器在Google Chrome上工作,而第二个过滤器在ADB上工作。
注意2如果链接被输入到浏览器的地址栏中,应用程序选择菜单将不会显示。必须是某个页面的链接。
在我看来,这里的一切都相当模糊,真的不是我所期望的那样。但在我的设备上就是这样工作的。希望这对你也有帮助。
我已经整合了分支机构。io SDK与我的android应用程序。我在仪表板中创建了带有自定义URI方案(drbond://)的深度链接URL。当从移动浏览器点击深层链接时,我会进入应用程序(如果已安装)。但在chrome浏览器中,情况并非如此。我试过使用Opera、Mozilla和其他默认浏览器,它们都可以正常工作。请帮助我了解在chrome中工作的深层链接。 仅供参考,我的活动意图过滤器,
我们正在为我们的android应用程序实现延迟的深度链接,但是当从facebook广告下载时,无法获得安装推荐器。 采取的步骤, 1.从分支创建深度链接。io仪表板= 2.对于在android中的重定向(当应用程序未安装时),web url设置为所需的推荐值。例如https://play.google.com/store/apps/details?id=mypackagename 3.当用户直接点
这是我的密码。这很简单,但当我点击按钮“button1”时,什么都没有发生。我做错了什么? 第二个-- 第三个-- 布局-- 新Logcat:11-29 12:15:39.552:D/gralloc_goldfish(613):检测到没有GPU仿真的模拟器。11-29 12:15:40.062:I/编舞(613):跳过51帧!应用程序可能在其主线程上做了太多工作。11-29 12:16:08.90
深度链接在android中不起作用。我已经把清单代码贴在这里了。当我测试时,它会进入网站,而不会在我的应用程序中打开我的活动。谁能帮我修一下吗? 更新: adb shell am start-W-aandroid.intent.action.VIEW-d"http://www.clinicloud.com/xyz"com.clinicloud.app 使用adb进行测试会打开应用程序,但仅使用浏览
众所周知,iOS深层链接已经改变了一点,称为通用链接,有了通用链接,我们需要在您的Xcode项目中启用“关联域”,并在那里添加受支持的域,还有一些变化,如在域服务器上托管苹果应用站点关联JSON。 这一点我非常理解,但我的问题是我必须支持多个社区,可能每个使用应用程序的企业都会有自己的社区,所以将所有社区(域)添加到“关联域”中不是一件好事,如果有新企业使用应用程序,然后我需要提供一个应用程序更新
我试图在facebook messenger上共享音频文件。如下所述https://developers.facebook.com/docs/messenger/android#integration_with_intents在这里,它可以共享简单的文本而不是音频文件。当我尝试在messenger上发送音频时,应用程序崩溃。 这是意图共享代码字符串mimeType=“音频/aac”;