2017-09-13 101 views
0

我深化發展與反應原生的應用程序,但我需要把本機模塊來使用Facebook AppInvite讓用戶邀請朋友在我的應用程序。Facebook的AppInvite Android Studio中無法解析法秀(

然而,我跟着作出反應本地的文檔中所有添加本機模塊在本地反應(之間的聯繫反應本地和本地代碼的工作),但用Java編寫的本機模塊不能正常工作。 https://facebook.github.io/react-native/docs/native-modules-android.html

package com.App.App; 

import android.app.Activity; 
import android.content.Context; 
import android.graphics.Bitmap; 

import com.facebook.react.bridge.NativeModule; 
import com.facebook.react.bridge.ReactApplicationContext; 
import com.facebook.react.bridge.ReactContext; 
import com.facebook.react.bridge.ReactContextBaseJavaModule; 
import com.facebook.react.bridge.ReactMethod; 
import com.facebook.FacebookSdk; 
import com.facebook.CallbackManager; 
import com.facebook.FacebookException; 
import com.facebook.share.model.AppInviteContent; 
import com.facebook.share.widget.AppInviteDialog; 
import android.support.v4.app.DialogFragment; 

import java.util.Map; 
import java.util.HashMap; 

public class FacebookInviteModule extends ReactContextBaseJavaModule { 

    //Cannot be modified since it use by reactnative 
    public FacebookInviteModule(ReactApplicationContext reactContext) { 
     super(reactContext); 
    } 

    //Cannot be modified since it use by reactnative 
    @Override 
     public String getName() { 
     return "FacebookInvite"; 
    } 

    @ReactMethod 

    public void showModule(){ 

     String appLinkUrl, previewImageUrl; 

     appLinkUrl = "https://www.app.com/myapplink"; 
     previewImageUrl = "https://www.app.com/my_invite_image.jpg"; 

     if (AppInviteDialog.canShow()) { 
      AppInviteContent content = new AppInviteContent.Builder() 
        .setApplinkUrl(appLinkUrl) 
        .setPreviewImageUrl(previewImageUrl) 
        .build(); 

      AppInviteDialog.show(this, content); 
     } 
    } 
} 

函數showModule()中沒有任何東西可以傳遞,因爲它在JavaScript代碼中使用顯示原生組件,因爲它在反應原生中是這樣調用的:NativeModules.FacebookInvite.showModule();

在函數showModule()的代碼,我使用的是完全相同的代碼在Facebook上的官方文檔:https://developers.facebook.com/docs/app-invites/android

,但我得到一個錯誤: AppInviteDialog.show(此內容); 說「無法解析方法」顯示(com.App.App.FacebookInviteModule,com.facebook.share.model.AppInviteContent)「

我非常瞭解ReactNative,但我不太瞭解Java和我不知道不明白錯誤。 文件代碼與MainActivty和MainApplication位於相同的文件夾中。

所以,如果有人知道我能做些什麼來讓這裏的工作,這將是美妙的:d

回答

0

你不必寫本地組件。您可以使用官方Facebook庫進行應用邀請。 react-native-fbsdk有AppInvite Component。它沒有很好的記錄,但幾乎所有的解釋,你需要在代碼文件內。檢查源代碼,你可以很容易地找出它。

import { AppInviteDialog } from 'react-native-fbsdk'; 

AppInviteDialog.canShow().then(()=> { 
    AppInviteDialog.show({ 
     previewImageUrl, 
     applinkUrl, 
     promotionCode, 
     promotionText 
    }).then(() => { ... }); 
}).catch(()=> { console.error('App invite can't show!'); }); 
+0

太謝謝你了!bennygenel有效 !很遺憾de-react-native-fbsdk有很好的文檔記錄。 –

相關問題