Facebook AppInvite Android Studio无法解析方法显示(

时间:2017-09-13 22:49:56

标签: android facebook android-studio react-native

我正在使用本机反应开发应用程序,但我需要使用本机模块来使用Facebook AppInvite让用户在我的应用上邀请朋友。

但是,我已经按照本机的文档中的所有内容来反应native(反应本机代码和本机代码之间的链接工作)添加本机模块,但用java编写的本机模块没有#&# 39;工作。 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代码中用于显示本机组件,因为它在react native中被调用:NativeModules.FacebookInvite.showModule();

对于函数showModule()中的代码,我使用与Facebook官方文档完全相同的代码:https://developers.facebook.com/docs/app-invites/android

但我收到错误:      AppInviteDialog.show(this,content); 说"无法解决方法' show(com.App.App.FacebookInviteModule,com.facebook.share.model.AppInviteContent)"

我完全了解ReactNative,但我对Java并不了解,也不了解错误。 文件代码与MainActivty和MainApplication位于同一文件夹中。

所以,如果有人知道我能做些什么才能让它发挥作用,那就太棒了:D

1 个答案:

答案 0 :(得分:0)

您不必编写本机组件。您可以使用官方Facebook库进行App Invites。 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!'); });