Beiträge von DevcomTom

    Hi Leute,


    ich habe ein riesiges Problem mit OAuth und der geocaching API. Trotz tage langen suchens bekomme ich es einfach nicht. Ich möchte eine Activity die per Oauth geocaching.com die Auhtentifizierung macht. Ich habe im Internet verschiedene Ansätze gefunden die ich aber nicht in die WebView Activity umsetzen konnte. Kann mir jemanden den SourceCode "GcApiLogin Activity mit WebView" (siehe Code weiter unten) mit Leben füllen, so daß die OAuth bei geocaching.com funktioniert?



    Das wäre toll.




    Vielen Dank im voraus


    // Manifest


    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.tektom"
    android:versionCode="1"
    android:versionName="1.0" >


    <uses-sdk android:minSdkVersion="8" />


    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>


    <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
    android:name=".main"
    android:label="@string/app_name" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    <activity android:name=".GcApiLogin">
    <intent-filter>
    <action android:name="android.intent.action.VIEW"></action>
    <category android:name="android.intent.category.DEFAULT"></category>
    <category android:name="android.intent.category.BROWSABLE"></category>
    </intent-filter>
    </activity>
    </application>
    </manifest>


    //
    // Main Activity
    //


    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;


    public class main extends Activity
    {
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.main);


    Intent gcApiLogin = new Intent().setClass(this, GcApiLogin.class);
    this.startActivityForResult(gcApiLogin, 987654321);
    }
    }



    //
    // GcApiLogin Activity mit WebView
    //
    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.graphics.Bitmap;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewParent;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;


    public class GcApiLogin extends Activity
    {
    private static GcApiLogin gcApiLogin;
    private static ProgressDialog pd;
    private static boolean pdIsShow = false;


    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.gcapilogin);
    gcApiLogin = this;



    if (!pdIsShow)
    {
    pd = ProgressDialog.show(gcApiLogin, "", "Loading....", true);
    pdIsShow = true;
    }


    View titleView = getWindow().findViewById(android.R.id.title);
    if (titleView != null)
    {
    ViewParent parent = titleView.getParent();
    if (parent != null && (parent instanceof View))
    {
    View parentView = (View) parent;
    parentView.setBackgroundColor(Color.BLACK);
    }
    }


    final WebView webView = (WebView) this.findViewById(R.id.gal_WebView);


    webView.setWebViewClient(new WebViewClient()
    {


    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon)
    {
    gcApiLogin.setTitle("Loading...");


    if (!pdIsShow)
    {
    pd = ProgressDialog.show(gcApiLogin, "", "Loading....", true);
    pdIsShow = true;
    }


    super.onPageStarted(view, url, favicon);
    }


    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {


    return true;
    }


    @Override
    public void onPageFinished(WebView view, String url)
    {
    if (pd != null) pd.dismiss();
    pdIsShow = false;
    }


    });
    }


    }