jpush-react-native android 集成报错


(Zzzeee) #1

自动运行脚本失败,手动配置后,运行 react-native run-android后报错,怎么破?

MainActivity.java 文件内容如下:

package com.jingtao;
import com.facebook.react.ReactActivity;
public class MainActivity extends ReactActivity {
/
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
  @override
  protected String getMainComponentName() {
    return "jingtao";
  }
  @override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    JPushInterface.init(this);
  }
 @override
   protected void onPause() {
     super.onPause();
    JPushInterface.onPause(this);
  }
  @override
  protected void onResume() {
      super.onResume();
     JPushInterface.onResume(this);
  }
}

删除MainActivity.java后添加的内容后:


(KenChoi) #2

clean 一下项目,由于升级版本,缓存的编译结果与新的 jar 包冲突。


(Zzzeee) #3

请教一下 clean 命令是?


(KenChoi) #4

./gradlew clean


(KenChoi) #5

你就没有看文档吧,JPushPackage 是有参数的。


(Zzzeee) #6

我是看这git的说明文档 链接过来的 http://bbs.reactnative.cn/topic/3505/用-jpush-react-native-插件快速集成推送功能-android-篇

文档全是android IOS的, 没看见有react native版的啊


(KenChoi) #7

(Zzzeee) #8

恩 这个我看过
那为什么我每次添加 MainActivity.java文件的如下内容后老是报错呢

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        JPushInterface.init(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        JPushInterface.onPause(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        JPushInterface.onResume(this);
    }

顺便请求一下,客户端要怎么注册呢?


(KenChoi) #9

因为你没有导入相关的类,你用 Android Studio 打开编译一下就可以了。集成后自动注册。


(Zzzeee) #10

清除了一下, react-native run-android 可以是编译过了.
可是我用的不是Android Studio ,是visual studio code …

尴尬!!!


(Zzzeee) #11

build.gradle文件配置

JS调用

发送结果


(KenChoi) #12

看下日志有没有成功集成,如果有报错有提示的。


(Zzzeee) #13

哪里看???


(Zzzeee) #14

哎呀,我擦,
再试了一下 发送成功了!
其他的我自己再研究研究哦。

谢谢了,辛苦了。


(KenChoi) #15

你用的 Visual Studio Code 不能看日志吗?如果你装了 adb 工具也能看


(Zzzeee) #16

大神,我现在可以发送通知了,但要跳转的指定页面就是死活实现不了。

主要出现下面一些问题

项目/node_modules/jpush-react-native/android/src/…/JPushModule.java

项目/node_modules/jpush-react-native/android/src/…/JPushModule.java

项目/android/app/src…/SecondActivity.java

项目/node_modules/app/src …/MainActivity.java


(Zzzeee) #17

参考链接:http://www.jianshu.com/p/7c03db422c6d


(KenChoi) #18

如果你用的是最新的版本,现在跳转到指定界面都是在 JS 中操作了,不需要本地进行操作了。

componentDidMount() {
		JPushModule.notifyJSDidLoad();
		JPushModule.addReceiveCustomMsgListener((map) => {
			this.setState({
				pushMsg: map.message
			});
			console.log("extras: " + map.extras);
		});
		JPushModule.addReceiveNotificationListener((map) => {
			console.log("alertContent: " + map.alertContent);
			console.log("extras: " + map.extras);
			// var extra = JSON.parse(map.extras);
			// console.log(extra.key + ": " + extra.value);
		});
		JPushModule.addReceiveOpenNotificationListener((map) => {
			console.log("Opening notification!");
			console.log("map.extra: " + map.key);
        // 跳转界面 
		});
		JPushModule.addGetRegistrationIdListener((registrationId) => {
			console.log("Device register succeed, registrationId " + registrationId);
		});
	}

(Zzzeee) #19

谢谢了,问题已解决!

不知道极光推送有没有购物APP的客服聊天插件,假如客房退出APP还支持推送。


#20

没有提供这样的插件,但你说的聊天,我们有即时通讯jmessage的react插件,可以实现聊天。

当APP不在聊天界面时,我们会对聊天消息做推送提醒处理,即你通知栏会展示。

但关于你说的退出还要收到推送,是说的杀死APP吗?对于Android,请阅读并阅读完