我正在共享android应用中的深层链接。
我遇到以下问题
深层链接示例:
大数据,人工智能,机器学习,神经网络,数据科学和深度学习的备案代码 https://lunaticai.page.link/?link=https://lunaticai.page.link/lunaticai&apn=com.Insane.App&amv=news=244
先在 AndroidManifest.xml
中查看实施<activity
android:name="com.Insane.App.ActivityMain"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
>
<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="https"
android:host="lunaticai.page.link"
/>
</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="http"
android:host="lunaticai.page.link"
/>
</intent-filter>
</activity>
ActivityNewsDetails.java
private String buildDynamicLink(News news){
return "https://lunaticai.page.link/?"
+"link="+
"https://lunaticai.page.link/lunaticai"
+"&apn=" +
"com.Insane.App"
+"&amv="+
"news="+news.id;
}
ActivityMain.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (getIntent().getExtras() != null && getIntent().getExtras().getBoolean("EXIT", false)) {
finish();
}
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
// Get deep link from result (may be null if no link is found)
deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
}
Uri data = getIntent().getData();
if (data != null) {
Log.d("deep", data.toString());
try {
String path = data.toString();
String idStr = path.substring(path.lastIndexOf('=') + 1);
if(!idStr.equals("")){
newsId = Long.parseLong(idStr);
}
Log.d("deep", "newsId = "+newsId);
} catch (NumberFormatException e) {
startActivity(getIntent());
}
}
if(data != null && newsId != 0){
if (resp != null) {
ActivityNewsDetails.navigate(ActivityMain.this,resp.news.get(0));
for (int i=0;i<resp.news.size();i++){
if(resp.news.get(i).id == newsId){
ActivityNewsDetails.navigate(ActivityMain.this,resp.news.get(i));
}
}
}
}
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "getDynamicLink:onFailure", e);
}
});