android - manualidades - pinterest on pinterest
Intento compartido de Android para Pinterest no funciona (3)
por alguna razón, la aplicación pinterest no cumple con el estándar (Intent.EXTRA_TEXT) por lo que debemos agregarlo por separado
if(appInfo.activityInfo.packageName.contains("com.pinterest"){
shareIntent.putExtra("com.pinterest.EXTRA_DESCRIPTION","your description");
}
Estoy haciendo un intento de compartir Android para Pinterest pero no está funcionando del todo. Puedo adjuntar la imagen, pero no puedo enviar texto al campo "descripción" en la ventana de compartir. Probé diferentes tipos (text / plain, image / *, image / png) y también probé el tipo de intento ACTION_SEND_MULTIPLE, pero todavía no tuve suerte. La intención de Google Chrome para compartir funciona perfectamente, así que estoy seguro de que Pinterest admite esta funcionalidad. Aquí está mi código:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_TEXT, text);
if(file != null) intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
intent.setClassName(packageName, name);
this.startActivity(intent);
¿Alguna idea? ¡Gracias!
File imageFileToShare = new File(orgimagefilePath);
Uri uri = Uri.fromFile(imageFileToShare);
Intent sharePintrestIntent = new Intent(Intent.ACTION_SEND);
sharePintrestIntent.setPackage("com.pinterest");
sharePintrestIntent.putExtra("com.pinterest.EXTRA_DESCRIPTION", text);
sharePintrestIntent.putExtra(Intent.EXTRA_STREAM, uri);
sharePintrestIntent.setType("image/*");
startActivityForResult(sharePintrestIntent, PINTEREST);
Encontré una manera de compartir en Pinterest con intenciones sencillas de Android (sin usar el SDK de Pinterest ), con la ayuda de los documentos para desarrolladores Pin It button .
Básicamente, acaba de abrir una URL como esta con Intent.ACTION_VIEW
; la aplicación oficial de Pinterest amablemente admite estas URL. (Anteriormente, utilicé un enfoque similar para compartir en Twitter ).
https://www.pinterest.com/pin/create/button/
?url=http%3A%2F%2Fwww.flickr.com%2Fphotos%2Fkentbrew%2F6851755809%2F
&media=http%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg
&description=Next%20stop%3A%20Pinterest
Y para una experiencia de usuario más fluida, configure la intención de abrir directamente en la aplicación Pinterest, si está instalada.
Un ejemplo completo:
String shareUrl = "https://.com/questions/27388056/";
String mediaUrl = "http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png";
String description = "Pinterest sharing using Android intents"
String url = String.format(
"https://www.pinterest.com/pin/create/button/?url=%s&media=%s&description=%s",
urlEncode(shareUrl), urlEncode(mediaUrl), urlEncode(description));
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
filterByPackageName(context, intent, "com.pinterest");
context.startActivity(intent);
Los métodos Util utilizados anteriormente:
public static void filterByPackageName(Context context, Intent intent, String prefix) {
List<ResolveInfo> matches = context.getPackageManager().queryIntentActivities(intent, 0);
for (ResolveInfo info : matches) {
if (info.activityInfo.packageName.toLowerCase().startsWith(prefix)) {
intent.setPackage(info.activityInfo.packageName);
return;
}
}
}
public static String urlEncode(String s) {
try {
return URLEncoder.encode(s, "UTF-8");
}
catch (UnsupportedEncodingException e) {
Log.wtf("", "UTF-8 should always be supported", e);
return "";
}
}
Este es el resultado de una aplicación Nexus 5 con Pinterest instalada:
Y si la aplicación Pinterest no está instalada, compartir también funciona bien a través de un navegador: