我在此github项目之后创建了深层/动态链接。
以下是创建的链接:https://appcode.app.goo.gl/?link=http://example.com/-example&apn=com.abc.xxx&amv=16&ad=0&extraParameter=null
这是我用来分享它的方法:
private void shareDeepLink(String deepLink) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Firebase Deep Link");
intent.putExtra(Intent.EXTRA_TEXT, deepLink);
itemView.getContext().startActivity(intent);
}
这是我应用的intent-filters
文件中定义的AndroidManifest.xml
:
<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:host="example.com" android:scheme="http"/>
<data android:host="example.com" android:scheme="https"/>
</intent-filter>
这就是我尝试接收共享的deep-link
:
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);
} else {
Log.d("getInvitation", "getInvitation: no deep link found.");
}
}
});
以下是注销的内容(已收到深层链接):http://example.com/-example
正如您可以清楚地看到的那样,我没有得到所创建的确切深层链接,而是我得到了它的更改版本。为什么呢?
我怎样才能获得完全相同的创建和共享的深层链接?
答案 0 :(得分:2)
您正在正确收回深层链接
这是生成的完整链接,其中包含apn之类的信息:应用的包名,要知道的信息,例如需要打开哪个应用
这是你的深层链接 链接= http://example.com/-example。因此,如果您想添加更多参数,可以在此处执行,例如下面的示例
链接= http://example.com/-example&blabla
所以你有结果https://appcode.app.goo.gl/?link=http://example.com/-example&blabla&apn=com.abc.xxx&amv=16&ad=0
如果您希望此部分可以编码为http://example.com/-example&blabla
你可以尝试一下,让我知道。
中查看此信息答案 1 :(得分:0)
替换
{{ query_naissance }}
与
<data
android:host="xxx.abc.com"
android:scheme="https"/>
答案 2 :(得分:0)
我也遇到了这个问题。问题是我收到的链接是“长链接”。 我们可以从firebase创建两种类型的链接:
所以这就是为什么我要面对这个问题。 我通过从
获取整个链接解决了该问题 Uri uriData = intent.data
并从链接中获取特定的查询参数:
String email = uriData.getQueryParameter("email")
我希望它会帮助任何人!