【发布时间】:2017-09-13 22:49:55
【问题描述】:
我正在开发一个带有 react native 的应用,但我需要合并一个原生模块来使用 Facebook AppInvite 让用户在我的应用上邀请朋友。
但是,我已经按照 react native 文档中的所有内容在 react native 中添加了本地模块(react native 和本地代码之间的链接有效),但是用 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 代码中用于显示原生组件,因为它在 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
【问题讨论】:
标签: android facebook android-studio react-native