android - todas - trucos de messenger 2018
Android: el contenido compartido de Facebook se sobrescribe (2)
Este es mi código para compartir la puntuación más alta en Facebook:
ShareLinkContent content = new ShareLinkContent.Builder()
.setImageUrl(Uri.parse("http://www.example.com/myicon.png"))
.setContentTitle("I scored "+numPoints+" points!")
.setContentUrl(Uri.parse("https://play.google.com/store/apps/details?id=com.my.package"))
.setContentDescription("Get the game free on Google Play and beat my score.")
.build();
ShareDialog shareDialog = new ShareDialog(this);
shareDialog.show(content);
Y esto funciona muy bien cuando la URL es un sitio aleatorio (como developers.facebook.com) pero cuando se trata de un enlace a Google Play, el título y la descripción del contenido se sobrescriben: el título se sobrescribe con el título de la tienda Play y la descripción del contenido. está en blanco.
Entonces, ¿cómo se puede vincular a la aplicación en la tienda Play pero mantener el título y la descripción personalizados? Sé que es posible porque he visto otras aplicaciones hacerlo:
Duplique this publicación con un enlace a un informe de error de Facebook donde Facebook confirma el comportamiento y afirma que probablemente no lo arreglarán.
En cuanto a cómo otras aplicaciones están teniendo ese comportamiento, tengo una conjetura.
Si su aplicación tiene un sitio web al que puede agregar una página ficticia, puede hacer lo siguiente:
<html>
<head>
<script type="text/javascript">
window.location.replace(''https://play.google.com/store/apps/details?id=com.example.client'');
</script>
</head>
<body></body>
</html>
Luego use setContentUrl(Uri.parse("https://example.com/android")
para su ShareDialog
donde la url abre una página que ShareDialog
el HTML anterior.
Esto enviará automáticamente a los usuarios a su página de Google Play Store cuando abran esa página. El botón Atrás también debería funcionar como si fueran directamente a la página de Google Play Store.
Intenté usar una redirección HTTP en lugar de tener que alojar la página, pero no funcionó.
EDITAR: puede incluir etiquetas meta de AppLinks en el encabezado de la página para omitir la redirección en dispositivos Android.
<html>
<head><title>App Link</title>
<meta property="fb:app_id" content="XXXXXXXXXXXXXXX"/>
<meta property="al:ios:url" content="example://test"/>
<meta property="al:ios:app_name" content="Example App"/>
<meta property="al:ios:app_store_id" content="XXXXXXXXX"/>
<meta property="al:android:package" content="com.example.client"/>
<meta property="al:android:app_name" content="Example App"/>
<meta property="al:android:url" content="example://test"/>
<meta property="al:web:should_fallback" content="false"/>
<meta http-equiv="refresh" content="0;url=http://play.google.com/store/apps/details?id=com.example.client"/>
</head>
<body>Redirecting...</body>
</html>
This muestra cómo manejar el enlace en su aplicación.
<activity
android:name="com.example.client.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<data android:scheme="example"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
Si la aplicación no está instalada en el dispositivo, se te envía a Google Play Store (aunque a través de una ventana emergente muy fea que no ocurre en el flujo normal de ShareDialog cuando se usa un enlace de Play Store directamente).
Además, Facebook creará y alojará la página por ti si así lo deseas. El ejemplo HTML anterior es de una de sus páginas alojadas (tenga en cuenta la implementación diferente de la redirección).
Puede utilizar el método de despliegue para lograrlo. Todo lo que tiene que hacer es crear una página html y colocar todos los enlaces de la tienda (Google Play, App Store) en esa etiqueta meta y tratar de compartir ese enlace. Podrías lograr lo que deseas y también si el usuario abre la aplicación en Android, será redirigido a Google Play y si el usuario abre la aplicación en iOS, será redirigido a la página de App Store.