用React Native完成我的Android应用程序后,我想生成一个APK文件,安装在我和我的朋友手机上.为此,我需要编辑某个gradle.properties文件(根据React Native文档).我试图找到这个文件差不多一个星期了,现在结束了upp搜索我的整个C:for the file.我找到了大量具有正确名称的文件,但没有在正确的平面或正确的内容中.
我怀疑问题可能是我使用的是Windows而不是linux或mac(这就是为其编写的文档).是否有另一个文件要使用Windows编辑或我错过了其他东西?
使用Windows 10和React native 0.31.0
我一直在尝试创建一个React Native应用程序,用于捕获电话并将数字发送到API.我创建了一个工作的本机模块,用于捕获Java中的电话.我还设法将事件发送到我的JavaScript代码并设法捕获此事件并通过JavaScript中的console.log记录该数字.
现在我的问题是我需要应用程序才能工作,即使应用程序已关闭(在后台).我无法找到任何方法来唤醒使用Java模块的本机代码或运行Javascript而无需启动应用程序.
这是我的BroadcastReciver:
package com.wavyassist;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.bridge.JavaScriptModule;
import android.widget.Toast;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.Arguments;
import javax.annotation.Nullable;
/**
* Created by Erik on 2016-04-06.
*/
public class CallCatcher extends BroadcastReceiver {
private CallCatcherModule module;
public CallCatcher (){
this.module = CallCatcherModule.getInstance();
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING))
{
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Toast.makeText(context, "Call from:" +incomingNumber, Toast.LENGTH_LONG).show(); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个应用程序,它将使用 BroadcastReciver 接听手机的来电。从我的 BroadcastReciver 中,我想使用此方法将数字作为事件发送到我的 JS 文件。
我已经检查过我的 Java 代码是否正在工作并且正在捕获调用和号码,但是我的应用程序因提到反应上下文为空的错误而崩溃。我猜这是因为当捕获来自 android 系统的事件并且新实例没有 ReactContext 时,清单(或其他东西)正在创建类的新实例。有没有办法从 Java 代码访问 ReactContext 或通过清单将 ReactContext 发送到 BroadcastReciver?
这是我的 BroadcastReciver:
package com.bridgetest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.bridge.JavaScriptModule;
import android.widget.Toast;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.Arguments;
import javax.annotation.Nullable;
/**
* Created by Erik on 2016-04-06.
*/
public class BroadcastReceiverCustom extends BroadcastReceiver {
ReactContext reactContext;
public BroadcastReceiverCustom (){
}
@Override
public void onReceive(Context context, …
Run Code Online (Sandbox Code Playgroud) 我一直在尝试为react-native编写一个模块,当手机收到一个电话时,应该调用一个Javascript方法.但是当我运行命令时react-native run-android
,compileDebugJavaWithJavac
崩溃时出现以下错误.
CallListenerModule.java:44 error: package DeviceEventManagerModule does not exist (DeviceEventManagerModule.RCTDeviceEventEmitter.class)
Run Code Online (Sandbox Code Playgroud)
这是CallListenerModule类:
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.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.Arguments;
import android.util.Log;
public class CallListenerModule extends ReactContextBaseJavaModule {
BroadcastReceiverCustom broadcastRecevier;
ReactContext context;
public CallListenerModule(ReactApplicationContext reactContext) {
super(reactContext);
context = reactContext;
broadcastRecevier = new BroadcastReceiverCustom(reactContext);
}
@Override
public String getName() {
return "CallListenerModule";
}
public void sendCallEvent(String incomingNumber){
WritableMap params = Arguments.createMap();
params.putString("Number", incomingNumber);
sendEvent(context, "CallRecevied", params);
}
private void …
Run Code Online (Sandbox Code Playgroud)