开发者社区 问答 正文

移动推送+ReactNative最佳实践方法有哪些?(2)



2.3.2 JavaScript监听相关事件

  1. [backcolor=transparent]//导入相关模块
  2. [backcolor=transparent]import[backcolor=transparent] [backcolor=transparent]{
  3. [backcolor=transparent]  [backcolor=transparent]AppRegistry[backcolor=transparent],
  4. [backcolor=transparent]  [backcolor=transparent]MPush[backcolor=transparent],
  5. [backcolor=transparent]  [backcolor=transparent]DeviceEventEmitter[backcolor=transparent],
  6. [backcolor=transparent]  [backcolor=transparent]......
  7. [backcolor=transparent]}[backcolor=transparent] [backcolor=transparent]from[backcolor=transparent] [backcolor=transparent]'react-native'[backcolor=transparent];
  8. [backcolor=transparent]export[backcolor=transparent] [backcolor=transparent]default[backcolor=transparent] [backcolor=transparent]class[backcolor=transparent] [backcolor=transparent]AwesomeProject[backcolor=transparent] [backcolor=transparent]extends[backcolor=transparent] [backcolor=transparent]Component[backcolor=transparent] [backcolor=transparent]{
  9. [backcolor=transparent]......
  10. [backcolor=transparent]    [backcolor=transparent]//绑定事件
  11. [backcolor=transparent]    componentDidMount[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  12. [backcolor=transparent]          [backcolor=transparent]DeviceEventEmitter[backcolor=transparent].[backcolor=transparent]addListener[backcolor=transparent]([backcolor=transparent]'onMessage'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]this[backcolor=transparent].[backcolor=transparent]onMessage[backcolor=transparent]);
  13. [backcolor=transparent]          [backcolor=transparent]DeviceEventEmitter[backcolor=transparent].[backcolor=transparent]addListener[backcolor=transparent]([backcolor=transparent]'onNotification'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]this[backcolor=transparent].[backcolor=transparent]onNotification[backcolor=transparent]);
  14. [backcolor=transparent]      [backcolor=transparent]}
  15. [backcolor=transparent]    [backcolor=transparent]//解绑事件
  16. [backcolor=transparent]    componentWillUnmount[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  17. [backcolor=transparent]        [backcolor=transparent]DeviceEventEmitter[backcolor=transparent].[backcolor=transparent]removeListener[backcolor=transparent]([backcolor=transparent]'onMessage'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]this[backcolor=transparent].[backcolor=transparent]onMessage[backcolor=transparent]);
  18. [backcolor=transparent]        [backcolor=transparent]DeviceEventEmitter[backcolor=transparent].[backcolor=transparent]removeListener[backcolor=transparent]([backcolor=transparent]'onNotification'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]this[backcolor=transparent].[backcolor=transparent]onNotification[backcolor=transparent]);
  19. [backcolor=transparent]    [backcolor=transparent]}
  20. [backcolor=transparent]    [backcolor=transparent]//事件处理逻辑
  21. [backcolor=transparent]    onMessage[backcolor=transparent]([backcolor=transparent]e[backcolor=transparent]){
  22. [backcolor=transparent]        alert[backcolor=transparent]([backcolor=transparent]"Message Received. Title:"[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] e[backcolor=transparent].[backcolor=transparent]title [backcolor=transparent]+[backcolor=transparent] [backcolor=transparent]", Content:"[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] e[backcolor=transparent].[backcolor=transparent]content[backcolor=transparent]);
  23. [backcolor=transparent]    [backcolor=transparent]}
  24. [backcolor=transparent]    onNotification[backcolor=transparent]([backcolor=transparent]e[backcolor=transparent]){
  25. [backcolor=transparent]        alert[backcolor=transparent]([backcolor=transparent]"Notification Received.Title:"[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] e[backcolor=transparent].[backcolor=transparent]title [backcolor=transparent]+[backcolor=transparent] [backcolor=transparent]", Content:"[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] e[backcolor=transparent].[backcolor=transparent]content[backcolor=transparent]);
  26. [backcolor=transparent]    [backcolor=transparent]}
  27. [backcolor=transparent]}


2.4 初始化


在Application中初始化推送SDK:
  1. [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]class[backcolor=transparent] [backcolor=transparent]MainApplication[backcolor=transparent] [backcolor=transparent]extends[backcolor=transparent] [backcolor=transparent]Application[backcolor=transparent] [backcolor=transparent]implements[backcolor=transparent] [backcolor=transparent]ReactApplication[backcolor=transparent] [backcolor=transparent]{
  2. [backcolor=transparent]  [backcolor=transparent]private[backcolor=transparent] [backcolor=transparent]static[backcolor=transparent] [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] TAG [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]MainApplication[backcolor=transparent].[backcolor=transparent]class[backcolor=transparent].[backcolor=transparent]getName[backcolor=transparent]();
  3. [backcolor=transparent]  [backcolor=transparent]private[backcolor=transparent] [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]ReactNativeHost[backcolor=transparent] mReactNativeHost [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]ReactNativeHost[backcolor=transparent]([backcolor=transparent]this[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  4. [backcolor=transparent]    [backcolor=transparent]@Override
  5. [backcolor=transparent]    [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]boolean[backcolor=transparent] getUseDeveloperSupport[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  6. [backcolor=transparent]      [backcolor=transparent]return[backcolor=transparent] [backcolor=transparent]BuildConfig[backcolor=transparent].[backcolor=transparent]DEBUG[backcolor=transparent];
  7. [backcolor=transparent]    [backcolor=transparent]}
  8. [backcolor=transparent]    [backcolor=transparent]@Override
  9. [backcolor=transparent]    [backcolor=transparent]protected[backcolor=transparent] [backcolor=transparent]List[backcolor=transparent]<[backcolor=transparent]ReactPackage[backcolor=transparent]>[backcolor=transparent] getPackages[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  10. [backcolor=transparent]      [backcolor=transparent]return[backcolor=transparent] [backcolor=transparent]Arrays[backcolor=transparent].<[backcolor=transparent]ReactPackage[backcolor=transparent]>[backcolor=transparent]asList[backcolor=transparent](
  11. [backcolor=transparent]          [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]MainReactPackage[backcolor=transparent]()
  12. [backcolor=transparent]      [backcolor=transparent]);
  13. [backcolor=transparent]    [backcolor=transparent]}
  14. [backcolor=transparent]  [backcolor=transparent]};
  15. [backcolor=transparent]  [backcolor=transparent]@Override
  16. [backcolor=transparent]  [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]ReactNativeHost[backcolor=transparent] getReactNativeHost[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  17. [backcolor=transparent]    [backcolor=transparent]return[backcolor=transparent] mReactNativeHost[backcolor=transparent];
  18. [backcolor=transparent]  [backcolor=transparent]}
  19. [backcolor=transparent]  [backcolor=transparent]@Override
  20. [backcolor=transparent]  [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] onCreate[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  21. [backcolor=transparent]    [backcolor=transparent]super[backcolor=transparent].[backcolor=transparent]onCreate[backcolor=transparent]();
  22. [backcolor=transparent]    [backcolor=transparent]SoLoader[backcolor=transparent].[backcolor=transparent]init[backcolor=transparent]([backcolor=transparent]this[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]/* native exopackage */[backcolor=transparent] [backcolor=transparent]false[backcolor=transparent]);
  23. [backcolor=transparent]    [backcolor=transparent]this[backcolor=transparent].[backcolor=transparent]initCloudChannel[backcolor=transparent]();
  24. [backcolor=transparent]  [backcolor=transparent]}
  25. [backcolor=transparent]  [backcolor=transparent]private[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] initCloudChannel[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  26. [backcolor=transparent]    [backcolor=transparent]PushServiceFactory[backcolor=transparent].[backcolor=transparent]init[backcolor=transparent]([backcolor=transparent]this[backcolor=transparent].[backcolor=transparent]getApplicationContext[backcolor=transparent]());
  27. [backcolor=transparent]    [backcolor=transparent]CloudPushService[backcolor=transparent] pushService [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]PushServiceFactory[backcolor=transparent].[backcolor=transparent]getCloudPushService[backcolor=transparent]();
  28. [backcolor=transparent]    pushService[backcolor=transparent].[backcolor=transparent]register[backcolor=transparent]([backcolor=transparent]this[backcolor=transparent].[backcolor=transparent]getApplicationContext[backcolor=transparent](),[backcolor=transparent]  [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]CommonCallback[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  29. [backcolor=transparent]      [backcolor=transparent]@Override
  30. [backcolor=transparent]      [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] onSuccess[backcolor=transparent]([backcolor=transparent]String[backcolor=transparent] s[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  31. [backcolor=transparent]        [backcolor=transparent]Log[backcolor=transparent].[backcolor=transparent]e[backcolor=transparent]([backcolor=transparent]TAG[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"init cloudchannel success"[backcolor=transparent]);
  32. [backcolor=transparent]      [backcolor=transparent]}
  33. [backcolor=transparent]      [backcolor=transparent]@Override
  34. [backcolor=transparent]      [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] onFailed[backcolor=transparent]([backcolor=transparent]String[backcolor=transparent] s[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] s1[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  35. [backcolor=transparent]        [backcolor=transparent]Log[backcolor=transparent].[backcolor=transparent]e[backcolor=transparent]([backcolor=transparent]TAG[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"init cloudchannel failed. errorCode:"[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] s [backcolor=transparent]+[backcolor=transparent] [backcolor=transparent]". errorMsg:"[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] s1[backcolor=transparent]);
  36. [backcolor=transparent]      [backcolor=transparent]}
  37. [backcolor=transparent]    [backcolor=transparent]});
  38. [backcolor=transparent]  [backcolor=transparent]}
  39. [backcolor=transparent]}

展开
收起
猫饭先生 2017-10-23 11:17:37 1482 分享 版权
0 条回答
写回答
取消 提交回答