1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

SHARE_INTENT & URL-Shortner

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von StefMa, 22.07.2012.

  1. StefMa, 22.07.2012 #1
    StefMa

    StefMa Threadstarter Gewerbliches Mitglied

    Beiträge:
    2,054
    Erhaltene Danke:
    413
    Registriert seit:
    16.10.2010
    Hi,

    ich möchte meinen Inhalt der App sharen. Dazu benutze ich einfach das SHARE_INTENT.
    Dazu sage ich auch setType("text/plain").
    Leider werden Links, die darin enthalten sind, aber nicht als Links angezeigt sondern eben nur als Plain Text :D
    Weiß jemand wie ich aus den Links einen Link mache, der rest aber als plan text?!
    Mein Ergebniss sollte so aussehen
    Desweiteren möchte ich dann die URL, die ich übergebe, vorher shorten. Kennt da jmd eine gute Libary oder hat jemand nen Quelltext den ich "einfach" einbinden kann?

    Danke und Gruß
     
    GENiALi bedankt sich.
  2. m1s73r, 23.07.2012 #2
    m1s73r

    m1s73r Junior Mitglied

    Beiträge:
    42
    Erhaltene Danke:
    5
    Registriert seit:
    18.02.2012
    Also, ja das funktioniert! Mit tinyurl!

    Du brauchst erstmal diese Library: HttpClient - HttpClient Home

    dann importierst du in der .class Datei folgende Dinge:

    Code:
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpMethod;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.GetMethod;
    und hier ist der Code:

    Code:
    public abstract class TinyURLUtils {
    	public static String getTinyUrl(String fullUrl) throws HttpException, IOException {
    		HttpClient httpclient = new HttpClient();
     
    		// Prepare a request object
    		HttpMethod method = new GetMethod("http://tinyurl.com/api-create.php"); 
    		method.setQueryString(new NameValuePair[]{new NameValuePair("url",fullUrl)});
    		httpclient.executeMethod(method);
    		String tinyUrl = method.getResponseBodyAsString();
    		method.releaseConnection();
    		return tinyUrl;
    	}
    }
    dann kannst du einfach das hier aufrufen und bekommst deinen gekürzten link:

    Code:
    String tinyUrl = TinyURLUtils.getTinyUrl("http://www.diewebsite.com");
    System.out.println(tinyUrl); // --> http://tinyurl.com/6gf83
    In Java sollte es eig. funktionieren, habs aber mit Android nicht getestet :flapper:
     
    StefMa bedankt sich.
  3. StefMa, 24.07.2012 #3
    StefMa

    StefMa Threadstarter Gewerbliches Mitglied

    Beiträge:
    2,054
    Erhaltene Danke:
    413
    Registriert seit:
    16.10.2010
    Hey vielen dank.
    Werd es mal testen und berichten wie und ob es funktioniert :p

    Jemand mit den links eine idee?

    Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
     
  4. Flixius, 24.07.2012 #4
    Flixius

    Flixius Android-Hilfe.de Mitglied

    Beiträge:
    132
    Erhaltene Danke:
    4
    Registriert seit:
    24.10.2010
    Hey,
    Wenn die App aus dem Text eine URL herausparsen kann, dann wird der Link auch als Link dargestellt. Das ganze hängt also von der Interpreation der App ab, die deinen geshareden Text. Ich _glaube_ du hast da keine Möglichkeit Einfluss zu nehmen. Wenn die App HTML kann, dann könntest du überlegen den Link zu parsen und ein a href drum herum zu bauen.
     
  5. StefMa, 25.07.2012 #5
    StefMa

    StefMa Threadstarter Gewerbliches Mitglied

    Beiträge:
    2,054
    Erhaltene Danke:
    413
    Registriert seit:
    16.10.2010
    Hey,

    ja ist mir im nachinein auch eingefallen.
    Ich share es zwar als plain text, aber der andere betrachtet mein geteiltes ja via G+/Facebook/what ever und diese Apps/Brwoser/what ever² können ja die Links interpretieren :)

    danke Gruß

    Ice

    Der ursprüngliche Beitrag von 18:50 Uhr wurde um 19:32 Uhr ergänzt:

    Also es geht auch ohne iwelche Importe von klassen. Android bzw Java bietet schon alles "von haus aus".

    Code:
    import java.io.IOException;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpException;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    
    
    public abstract class TinyUrlCreater 
    {
    	public static String getTinyUrl(String fullUrl) throws HttpException, IOException 
    	{
    		String response = "STATIC";
    		HttpClient client = new DefaultHttpClient(); 
    		String getURL = "http://tinyurl.com/api-create.php?url="+fullUrl;
    		HttpGet get = new HttpGet(getURL);
    		HttpResponse responseGet = client.execute(get);  
    		HttpEntity resEntityGet = responseGet.getEntity();   
    		if (resEntityGet != null) 
    		{
    			response = EntityUtils.toString(resEntityGet);     
    		}
    
    		return response;
    	}
    
    }
    
    Dennoch danke m1s73r :)
     
    GENiALi bedankt sich.

Diese Seite empfehlen