我在使用Google Analytics(分析)将深层链接作为单独的页面时遇到了一些麻烦.
该站点使用JQuery来处理选项卡和深层链接.以此页面为例:http: //www.albanyservices.com/compliance/#/ic_compliance/
"#"后面的URL部分是指页面中的特定选项卡.选择新选项卡时会更新此选项.
目前,Google Analytics不会将每个标签视为网站中的单独页面.由于它们都包含单个内容并且直接链接到整个网站,因此我需要找到一种方法让Google Analytics将每个"#"更改视为单独的页面.
任何帮助将非常感激.提前致谢.
为了myapp://wallet指向WalletActivity我写了下面的代码,它起作用了:
<activity
android:name=".ui.WalletActivity"
android:label="@string/title_activity_wallet"
android:screenOrientation="portrait"
android:theme="@style/MaterialThemeNoActionBar"
android:launchMode="singleTop"
android:exported="true">
<intent-filter android:label="@string/title_activity_link_wallet" >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="myapp"
android:host="wallet" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
我为此做了类似的事情,UserProfileActivity但是(显然)onCreate该行中的函数崩溃了:String id = intent.getExtras().getString("id");因为我没有id为该活动的意图发送任何值。
因此,在这种情况下,有没有办法让我将ID传递给被调用活动的意图,在正常情况下,我会intent.putExtra("id", id);在调用活动中使用该方法(intent被调用活动在哪里)
我们正在考虑将branch.io用于我们应用的社交分享方面.我也想知道我是否可以将它用于密码重置流程.这是为了解决像gmail这样的电子邮件客户端剥离自定义应用程序的事实:
frock//:foo.com/reset-pw
Run Code Online (Sandbox Code Playgroud)
在任何链接:https://github.com/EddyVerbruggen/Custom-URL-scheme/issues/123.
所以我正在考虑使用branch.io发送一个到密码恢复屏幕的链接,我想知道是否必须为每个用户创建一个branch.io链接,或者我是否可以创建一个链接调用它/ reset-pw然后传递一个变量查询参数,如下所示:
/reset-pw?token=foo
Run Code Online (Sandbox Code Playgroud)
或者每个网址加查询组合是否要求我注册带分支的链接.
我想在Safari(iOS)或Chrome(Android)上运行JS代码来检测,例如,如果在设备上安装了WhatsApp.
我玩过:
和
https://github.com/hampusohlsson/browser-deeplink
但问题是如果应用程序安装在设备上 - 浏览器会重定向到应用程序.我希望在"检测阶段"之后留在页面上,是否有可能做到?
我正在手动创建Firebase动态/深层链接,如下所示:
Uri BASE_URI = Uri.parse("http://example.com/");
String packageName = getBaseContext().getPackageName();
Uri APP_URI = BASE_URI.buildUpon().path(requestID.getText().toString().trim()+"%3DrequestID="+requestID.getText().toString().trim()+"%3Dextra1="+extra1.getText().toString().trim()+"%3Dextra2="+extra2.getText().toString().trim()).build();
String encodedUri = URLEncoder.encode(APP_URI.toString(), "UTF-8");
Uri deepLink = Uri.parse("https://appcode.app.goo.gl/?link="+encodedUri+"&apn="+packageName+"&amv="+16+"&ad="+0);
Run Code Online (Sandbox Code Playgroud)
然后我与另一个用户分享它,他正在接收这个链接:http://example.com/-KcP1YHgGsg3tVYybX8b%253DrequestID%3D-KcP1YHgGsg3tVYybX8b%253Dextra1%3Dtext1%253Dextra2%3D3%253Dtext2.
然后使用以下代码我试图从这里获取查询参数(链接中的额外参数):
boolean autoLaunchDeepLink = false;
AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
.setResultCallback(
new ResultCallback<AppInviteInvitationResult>() {
@Override
public void onResult(@NonNull AppInviteInvitationResult result) {
if (result.getStatus().isSuccess()) {
// Extract deep link from Intent
Intent intent = result.getInvitationIntent();
final String deepLink = AppInviteReferral.getDeepLink(intent);
Log.d("deepLinkMainActivity", deepLink);
Uri uri = Uri.parse(deepLink);
String requestId = uri.getQueryParameter("requestID");
Log.d("requestId123", requestId);
} else {
Log.d("getInvitation", "getInvitation: no …Run Code Online (Sandbox Code Playgroud) 我已经更新了清单文件以支持深度链接。我已经从运行(编辑配置)中检查了它,它打开了指定的活动。
现在,我需要使用深层链接发送一些数据。那么应该怎么做呢。我添加了另一个数据属性,但是我不明白如何以相同的键/值方式在活动中获取数据。
我在活动中得到这样的意图
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
Run Code Online (Sandbox Code Playgroud)
intent.getData()的值= myapp:// videodeeplink
我已经阅读了一些有关此的文章和教程,但是我却无法获得。请指导我如何放置和获取深层链接中的一些数据。
myapp:// videodeeplink
<activity
android:name=".VideosListActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="myapp" android:host="videodeeplink"/>
<data android:scheme="videoURL" android:host="videoURL"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud) performance android deep-linking android-layout android-fragments
我尝试将我的Android即时应用发布到Google Play; 我链接了应用程序,该应用程序已命名helloinstantapp.instantapp.examples.chrisyttang.org为域https://csytang.github.io.
它已经过Android Studio验证
正如您在下图中看到的那样;
但是,当我尝试使用Google Play控制台将我的应用发布到Google Play时,我收到的错误是"该网站csytang.github.io尚未通过DAL协议链接到您的应用".为什么会这样?
android deep-linking android-studio android-instant-apps android-studio-3.0
为了将我的应用程序链接到网页,需要定义如下的assetlink.json。
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "package name",
"sha256_cert_fingerprints":
[key]
}
}]
Run Code Online (Sandbox Code Playgroud)
我的网站有许多模块,例如新闻网站中的示例,其中有独立的部分,如新闻,汽车评论,小工具评论,星座/天文学,烹饪,直播电视等。在这种情况下,新闻门户网站的每个模块都有android应用单独的android应用,而所有模块都在单个域下。那么我们如何定义我们的assetlink.json
我正在尝试通过branch.io为iOS应用(Swift 4.2)实现深层链接。我已经完全按照分支文档中的概述集成了iOS SDK。为了测试集成,我运行了branch.io通用链接验证脚本,并成功通过了该脚本。
通用链接不起作用的方法:
单击“注释”或“消息”中的深层链接会打开应用程序,但不会传递任何数据。在查看调试日志时,Branch报告的网址为完全空白(example.app.link?%24identity_id=611647344982868361)而不是(example.app.link/hj86HlvvMk2?%24identity_id=611647344982868361)。这与不使用深层链接手动打开应用程序相同。通过延迟的深层链接功能也无法获得任何数据。
使用URI方案而不是通用链接: 如果我通过branch.io链接设置仪表板关闭了通用链接,则所有URL在浏览器中打开,而没有任何提示打开应用程序。但是,当我手动打开应用程序时,深度链接数据在启动时就可用(通过延迟链接功能)。
其他尝试:添加$uri_redirect_mode: 2到链接数据以强制应用打开并没有真正改变任何东西。唯一不同的是,对于URI方案,它在重定向到之前在Safari中显示错误$fallback_url。我还尝试过重新安装应用程序,清除Safari缓存和cookie,但未成功。
我还要提到,深层链接本身应该没有任何问题。在Android上,相同的深层链接可以完美运行。
两种方法都无法使用立即可用的Deeplink数据打开应用程序。还有其他选择可以使这项工作吗?
更新:URI和通用链接是单独的问题。我们通过仔细检查URI方案来使URI正常工作(这是不正确的)。对于通用链接,Swift 4.2的Branch文档中可能会存在一些错误。请参阅我的答案以寻求解决方案。
更新2019-02-05:分支文档已更新为Swift 4.2。一切都很好。
deep-linking ×10
android ×6
ios ×3
branch.io ×2
applinks ×1
firebase ×1
iphone ×1
javascript ×1
json ×1
performance ×1
swift4.2 ×1
uri ×1
wallet ×1