2017-06-18 14 views
0

は、だから、私はXamarinアプリにTwitterのログインを実装したいが、私はチュートリアルに従うならば、ポータブルアプリケーションは、私は、この関数をやらせません。Xamarinでプラットフォーム固有のコードを作成しますか?

認証がこれです
var ui = auth.GetUI(this); 

var auth = new OAuth1Authenticator(
    "DynVhdIjJDXXXXXXXXXXXXX", 
    "REvU5dCUQI4MvjV6aWwXXXXXXXXXXXXXXXXXXXXXXX", 
    new Uri("https://api.twitter.com/oauth/request_token"), 
    new Uri("https://api.twitter.com/oauth/authorize"), 
    new Uri("https://api.twitter.com/oauth/access_token"), 
    new Uri("http://twitter.com")); 

Androidプロジェクトに追加する必要がありますが、そこからボタンを表示するにはどうすればよいですか?

ありがとうございました! :)

+0

RestSharp OAuth1Authenticatorを使用していますか? –

+0

携帯アプリはUIコードを処理できません。ポータブルクラスプロジェクトのインターフェイスと、Androidプロジェクトの実装クラスを使用する必要があります – hugoterelle

+0

@MalteGoetz yes –

答えて

0

ベース

public interface ILogin 
{ 
    void GetUI(); 
} 

はXamarin.Androidのインターフェイスを実装しますOAuth1AuthenticatorGetUI() Xamarin.Authを使用すると仮定します。

Xamarin.Authは、GetUI()の2つの実装、いわゆるPresenters(実際には依存サービス/注入)とCustomRenderersのXamarin.Formsをサポートしています。プレゼンターはより多くのテストを受けています(したがって安定性の証拠が増えます)が、レポのコードをチェックすることができます。 Xamarin.FormsでXamarin.Authを使用する方法

サンプル:

https://github.com/moljac/Xamarin.Auth.Samples.NugetReferences/tree/master/Xamarin.Forms/Evolve16Labs

注:このレポをメインXamarin.Authレポから抽出したサンプルが含まれているので、取り扱いが容易で、サンプルが更新されますより頻繁に。

0

Xamarinでプラットフォーム固有のコードを作成していますか?

DependencyServiceを使用してこの機能を実装できます。ここにはdocumentexampleがあります。このドキュメントでは、次のことを説明しています。

DependencyServiceを使用すると、アプリケーションが共有コードからプラットフォーム固有の機能を呼び出すことができます。この機能により、Xamarin.Formsアプリは、ネイティブアプリができることをすべて実行できます。

はPCLでILoginインターフェースを作成します。

[assembly: Xamarin.Forms.Dependency(typeof(TwitterLogin))] 
namespace TwitterDemo.Droid 
{ 
    public class TwitterLogin : ILogin 
    { 

    public TwitterLogin() 
    { 
    } 

    public void GetUI() 
    { 
     var auth = new OAuth1Authenticator("DynVhdIjJDXXXXXXXXXXXXX", "REvU5dCUQI4MvjV6aWwXXXXXXXXXXXXXXXXXXXXXXX", 
      new Uri("https://api.twitter.com/oauth/request_token"), 
      new Uri("https://api.twitter.com/oauth/authorize"), 
      new Uri("https://api.twitter.com/oauth/access_token"), 
      new Uri("http://twitter.com")); 

     Intent intent = auth.GetUI(Android.App.Application.Context); 

     Forms.Context.StartActivity(intent); 
    } 

    } 
} 

はXamarin.Formsでそれを使用します:

private void Button_Clicked(object sender, EventArgs e) 
{ 
     Xamarin.Forms.DependencyService.Register<ILogin>(); 
     DependencyService.Get<ILogin>().GetUI(); 
} 
関連する問題