【发布时间】:2016-03-04 08:56:21
【问题描述】:
我在我的应用程序中使用带有 branch.io 的深度链接。应用程序生成 url 并使用自定义方案打开它。在原生 android brawser、firefox 和 opera-mini 上运行正常,但在带有 ERR_UNKNOWN_URL_SCHEME 的 chrome-android 上失败
代码如下: 清单
<activity
android:launchMode="singleTask"
android:name=".ui.activity.ShareActivity"
android:screenOrientation="portrait">
<intent-filter>
<data android:scheme="myapp" android:host="open" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
生成url的代码(doc:https://dev.branch.io/getting-started/creating-links-in-apps/guide/android/):
public static void generateShortUrl(@NonNull Context aContext,
@Nullable String aMediaId,
@Nullable String aCollectionId,
@NonNull CanonicalIdentifier aCanonicalIdentifier,
@NonNull String aDesktopUrl,
@NonNull Branch.BranchLinkCreateListener aListener){
BranchUniversalObject branchUniversalObject = new BranchUniversalObject()
.setCanonicalIdentifier(String.valueOf(aCanonicalIdentifier.ordinal() + 1))
.setContentIndexingMode(BranchUniversalObject.CONTENT_INDEX_MODE.PUBLIC)
.addContentMetadata(SHARE_MEDIA_ID, aMediaId);
if(BuildConfig.DEBUG){
Log.e("BranchConfigTest","share date:"+branchUniversalObject.convertToJson().toString());
}
if(!TextUtils.isEmpty(aCollectionId))
branchUniversalObject.addContentMetadata(SHARE_COLLECTION_ID,aCollectionId);
if(!TextUtils.isEmpty(aMediaId))
branchUniversalObject.addContentMetadata(SHARE_MEDIA_ID,aMediaId);
LinkProperties linkProperties = new LinkProperties()
.setFeature("sharing")
.addControlParameter("$desktop_url", aDesktopUrl);
branchUniversalObject.generateShortUrl(aContext,linkProperties,aListener);
}
【问题讨论】:
-
来自 Branch 的 Alex here...几个快速问题: 1. 你的应用中是否配置了 App Links? 2. 如果您将链接直接粘贴到 Chrome 地址栏中(不是从外部应用程序打开它),您是否仍然收到
ERR_UNKNOWN_URL_SCHEME错误? -
嗨,Alex,我刚刚配置了 App Links,所以现在我有两个原因: 1. 我将生成的链接直接粘贴到 chrome 地址栏中 - 并得到了方案错误。 2 我粘贴到其他地方(错误跟踪器),然后用我的设备上的 chrome 打开它 - 在 playmarket 页面上重定向
-
嗯...这些是我们的标准
bnc.lt链接,还是您使用的是自定义域?你能确认你打开的链接是httpS,而不仅仅是http吗? -
我使用 bnc.lt 域。这是我在应用程序端生成的链接示例bnc.lt/P2Gk/TgPzPohdvr 测试设备是 sm-t311 Android 4.4.1
标签: android google-chrome deep-linking branch.io