2017-01-30 13 views
2

Samsung Galaxy S6, Android Marshmallow 6.0. Развитие с единством.Глубокие ссылки не работают в собственных приложениях Samsung

приложения от Samsung

Глубокие ссылки https: // сделать не работу, но намерения: //делать работу в:

  • Интернет приложение
  • Memo приложение

приложения Google,

Оба https: // и намерения: //делать работу в:

  • Google Chrome приложение приложение
  • Gmail

Есть ли что-то о пользовательских приложениях Samsung?

Код

assetlinks.json

[{ 
    "relation": ["delegate_permission/common.handle_all_urls"], 
    "target": { 
    "namespace": "android_app", 
    "package_name": "com.xxx.app", 
    "sha256_cert_fingerprints": 
    ["4E:CC:14:62:B3:1D:13..."] 
    } 
}] 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<!-- REPLACE com.companyname.projectname to your app bundle ID--> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xxx.app" android:installLocation="preferExternal" android:versionCode="1" android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="23"/> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="1" /> 
    <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" /> 
    <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false"> 
    <activity android:name="causallink.assets.DeepLinkBridge" android:label="@string/app_name"> 
     <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
     <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> 
     </intent-filter> 
     <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> 
     <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" /> 
     <intent-filter android:autoVerify="true"> 
     <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="v.xxx.com" /> 
     </intent-filter> 
    </activity> 
    </application> 
</manifest> 

P.S. У меня есть googled и нашел много сообщений SO, но ни один из них я не нашел действительно полезным.

+0

Возможно, вам стоит подумать о попытке использовать эту библиотеку .. [Deeplink Dispatch] (https://github.com/airbnb/DeepLinkDispatch) .. – ZeroOne

+0

Благодарим вас за ссылку. Однако сначала мне хотелось бы понять, почему это происходит на самом деле. – igorpavlov

ответ

3

The «https: //» глубокие ссылки вы ссылаетесь на использовании механизма App ссылки Андроида для открытия приложений (проверить эту ссылку для хорошего обзор: https://blog.branch.io/technical-guide-to-deep-linking-android-app-links/).

Глубокие ссылки «намерение: //» используются в Chrome Intents (отметьте: https://blog.branch.io/technical-guide-to-deep-linking-on-android-chrome-intents/).

Приложения Samsung, которые вы упомянули, просто не поддерживают ссылки на приложения. Самый безопасный путь - поддержка как ссылок URI Scheme/Chrome, так и приложений, поскольку вы найдете разные приложения, которые поддерживают один, а не другой, и наоборот.

+0

Наконец. Спасибо. – igorpavlov

0

Вы можете попробовать это несколько конфиг .. надеюсь, что его работа

<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="v.xxx.com" 
       android:pathPrefix="/yourpath" 
       android:scheme="http" /> 
      <data 
       android:host="www.v.xxx.com" 
       android:pathPrefix="/yourpath" 
       android:scheme="https" /> 
      <data 
       android:host="*.v.xxx.com" 
       android:scheme="" 
       android:path="/yourpath/" /> 
      <data 
       android:path="" 
       android:pathPrefix="/*" 
       android:pathPattern="\?" 
       android:pathPattern="put your regex" /> 

</intent-filter> 
+0

Спасибо, я попробую. Не могли бы вы объяснить, почему эта конфигурация, по вашему мнению, будет работать? Разве Samsung не просто так: android: host = "v.xxx.com" по какой-то причине? – igorpavlov

+0

Это не работает. – igorpavlov