我正在尝试发送一封深度链接到我的iOS应用的电子邮件,使用myapp://格式从电子邮件中打开它.它可以在任何iOS邮件客户端(邮件,邮箱等)中工作(即点击它打开应用程序),但不能在Gmail应用程序(甚至是网络版)中使用,它会将其删除而只留下文本.除了创建一个从浏览器重定向到应用程序的Web链接之外,有没有人有解决方案/替代方案?
我想为我的cordova Android应用启用App Indexing,如下所述:https://developers.google.com/app-indexing/webmasters/app
不幸的是我无法找到如何为cordova应用程序执行此操作的文档.有一个插件可以收听并向Intents广播,但我不认为这会对我有所帮助:https://github.com/Initsogar/cordova-webintent
我尝试将示例XML(使用我的数据修改)添加到config.xml文件中,但是当我尝试构建应用程序时,我收到以下错误:
error: Error parsing XML: unbound prefix
Run Code Online (Sandbox Code Playgroud)
删除XML中的android:前缀时,此错误消失,但它无法正常工作.
deep-linking android-intent cordova android-app-indexing google-search-platform
Linking.removeEventListener('url', onReceiveURL);
removeEventListener 已弃用。
这是我的 IDE 的建议:
EventEmitter.removeListener('url', ...):方法已被弃用。请改为使用
remove()所返回的订阅EventEmitter.addListener。
// Custom function to subscribe to incoming links
subscribe(listener: (deeplink: string) => void) {
// First, you may want to do the default deep link handling
const onReceiveURL = ({url}: {url: string}) => listener(url);
// Listen to incoming links from deep linking
Linking.addEventListener('url', onReceiveURL);
const handleDynamicLink = (
dynamicLink: FirebaseDynamicLinksTypes.DynamicLink,
) => {
listener(dynamicLink.url);
};
const unsubscribeToDynamicLinks = dynamicLinks().onLink(handleDynamicLink);
return () => {
unsubscribeToDynamicLinks();
Linking.removeEventListener('url', onReceiveURL);
}; …Run Code Online (Sandbox Code Playgroud) refactoring dynamic-linking deprecated deep-linking react-native
我在应用中使用分支深层链接,通过社交媒体分享应用内容的链接.一切都工作得很好.
更新到iOS 11.2时,我遇到以下行为:
1)更新后,Universal Links仍然有效.
2)我卸载了应用程序并重新安装了它.
3)从那时起,所有链接始终在Safari中打开分支深度视图.
4)点击"打开应用程序",打开AppStore.
它并没有关系,其中应用我的链接点击(注,WhatsApp的,短信,脸谱,...),它始终是相同的行为.
通过点击右上角的"转到链接"按钮(当应用程序打开时)没有绕过 Universal Link .我在三种不同的设备(iPhone 5s,iPhone 6s,iPhone 7)上进行了测试.所有这些都导致了同样的结果.
我发现iOS 11 beta 2中有一个错误已在beta 3中修复(Ios 11.2 beta通用链接打开我的应用程序和Safari),但它可能已经重新出现了?!
任何人有相同的问题或解决方法吗?
我试图了解如何使用jQuery地址插件来处理与ajax的深层链接.
但文档很差,我找不到任何好的教程来解释发生了什么.
我认为一个包含好例子的好文档对每个插件都很重要.
有人可以解释或提供一些有用的链接来解释吗?
$.address.change(function(event) {
// do something depending on the event.value property, e.g.
// $('#content').load(event.value + '.xml');
});
$('a').click(function() {
$.address.value($(this).attr('href'));
});
Run Code Online (Sandbox Code Playgroud)
我的意思是,做$.address.value什么?它说"提供当前的深层链接价值." 它甚至意味着什么?它有什么作用呢?
通过大量搜索,我发现使用fb-messenger://user-thread/ID可以用于深度链接到Messenger并使用传入的FB ID打开现有线程,或者如果不存在则启动新线程.
它弹出到Messenger并打开一个线程,但该线程已经Facebook User实际发送.见下图.单击标题中的Facebook用户将转到具有正确用户图像和名称的详细视图.
如何正常工作?
我想要我的应用程序打开http://www.example.com和https://www.example.com.
这有效:
<data
android:host="www.example.com"
android:path="/"
android:scheme="http"/>
<data
android:host="www.example.com"
android:path="/"
android:scheme="https"/>
Run Code Online (Sandbox Code Playgroud)
是否有可能同时捕获两个条目?我试过了:
<data
android:host="www.example.com"
android:path="/"
android:scheme="http*"/>
Run Code Online (Sandbox Code Playgroud)
但这只捕获http链接,而不是https链接.
所以我知道如何处理机器人变体,但希望尽可能使用最简洁的书写.
以下是在导航组件中使用深层链接的说明:
https://developer.android.com/guide/navigation/navigation-deep-link
它说:
显式深层链接是使用 PendingIntent 将用户带到应用内特定位置的深层链接的单个实例。当用户通过显式深层链接打开您的应用程序时,任务返回堆栈将被清除并替换为深层链接目标。
现在的问题是Deep Links, Android App Links, App Indexing, 和之间有什么区别,Firebase Dynamic Links我们应该何时使用它们中的每一个?
另外,还有一点我们应该设置所有这些吗?
android deep-linking android-app-indexing firebase-dynamic-links
我已通过在此处上传 assetlinks.json 文件来设置深度链接
https://example.com/.well-known/assetlinks.json
Run Code Online (Sandbox Code Playgroud)
它在 Android 11 之前都可以正常工作。如果不是从 Playstore 下载的,它也可以在 Android 12 中工作(即从我的 android studio 或我从 android studio 制作的 apk 文件安装,即使我使用 Keystore 签署 apk 文件也能工作。)
在 Android 12 上从 Playstore 下载时,如果您进入应用程序设置 -> 默认打开 -> 在应用程序中打开的链接。我们可以看到我的域默认被禁用。我认为这与我在 assetlinks.json 中使用的 sha256 有关
我从 Android studio 中的 App Link Assistant 获取了 assetlinks.json。(我在生成 assetlinks 时也选择了密钥库文件)。
如果我去我的play console->Setup->App integrity->App signing
我可以在数字资产 Json 部分中看到不同的 Sha256(也在应用程序签名密钥证书部分中)
我可以在上传密钥证书部分看到我上传的 Sha256。
我的问题是我应该在 assetlinks.json 中使用哪种 sha256?
我在这里看到我应该同时使用两者。如果应该的话,如何将 sha256 添加到我的 assetlink.json 中。我可以将其添加为像这样的逗号分隔值吗?
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example", …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的Android应用程序中实现深层链接.我一直在关注这个指南.我在Android清单中启动了Android活动并进行了intent-filter:
<activity
android:name=".MyActivity"
android:parentActivityName=".MainActivity" >
<intent-filter android:label="@string/filter_title_deep_link">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.example" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"/>
</activity>
Run Code Online (Sandbox Code Playgroud)
我从adb产生这个意图:
adb shell am start -W -a android.intent.action.VIEW -d "com.example://test" com.example
Run Code Online (Sandbox Code Playgroud)
正在使用正确的意图数据创建活动,并按预期运行.但是,按下后退按钮后,应用程序退出.MainActivity正如parentActivityNameAndroid清单中所指出的那样,我期待构建后备栈.显然事实并非如此.
在这种情况下,如何将父活动添加到后台堆栈?
我想,如果我可以使用一个TaskStackBuilder如图所示这里在通知的情况下,但不知道它是如何工作的.
也许我应该有一个中间Activity来构建主要活动,例如:
TaskStackBuilder.create(this)
.addParentStack(MyActivity.class)
.addNextIntent(new Intent(this, MyActivity.class))
.startActivities();
Run Code Online (Sandbox Code Playgroud)
?
android deep-linking android-intent android-activity back-stack
deep-linking ×10
android ×4
ios ×3
ajax ×1
back-stack ×1
cordova ×1
deeplink ×1
deprecated ×1
email ×1
facebook ×1
gmail ×1
ios11 ×1
jquery ×1
react-native ×1
refactoring ×1