2016-01-13 70 views
2

我試圖在我的應用程序中實現谷歌登錄,我正在與原生做出反應。但是,我必須基本上更改整個MainActivity.java文件。React Native - MainActivity.java

我會改變這個

public class MainActivity extends ReactActivity { 

public class MainActivity extends AppCompatActivity implements 
    GoogleApiClient.OnConnectionFailedListener, 
    View.OnClickListener { 

這改變了很多東西,因爲它是不再延長ReactActivity,它現在延伸AppCompatActivity。

我的問題是:是否可以改變MainActivity的擴展?不需要ReactActivity?另外,ReactActivity似乎也有AppCompatActivity不支持的方法,例如protected List<ReactPackage> getPackages() {

順便說一句,我得到AppCompatActivity的地方是 https://github.com/googlesamples/google-services/blob/master/android/signin/app/src/main/java/com/google/samples/quickstart/signin/SignInActivity.java 這是谷歌的github回購谷歌登錄。

我的另一個問題是,我必須更改MainActivity.java才能使Google登錄工作。當我嘗試實現其他功能時,比如說視頻捕獲是否創建了一個新的MainActivity.java文件,例如VideoActivity.java,或者是否對一個MainActivity.java文件中的所有內容進行了所有更改。

感謝

回答

1

據我所知,ReactActivity擴展(android.support.v4.app)FragmentActivity,你可以把它傳遞給enableAutoManage。使用它作爲你的基類應該沒有問題。

登錄API本身不需要任何UI代碼,但爲了節省一些樣板代碼,建議將它與需要FragmentActivity的GoogleApiClient.Builder.autoManage一起使用。即使對於沒有FragmentActivity的應用程序,他們仍然可以使用Sign-In API而無需enableAutoManage(然後他們應該像這裏指示的那樣手動調用他們的GoogleApiClient的connect()/ disconnect(): https://developers.google.com/android/guides/api-client