Реактивно-родной намерение ОТПРАВИТЬ с реактивно-родной навигацией [v2] - PullRequest
0 голосов
/ 19 января 2019

После нескольких часов поиска и тестирования я не могу справиться с этой задачей.

Я пытаюсь передать данные (URL, изображение) из другого приложения -> в мое приложение.

Но мне не удалось найти надлежащую документацию о том, как этого добиться (на Android и iOS), или надежные модули ( response-native-share-extension кажется излишним ине работает с response-native-navigation v2 ( # 139 ) и act-native-share-menu не поддерживается для iOS)

Поговорим немногоЧто касается Android, я обновил свой манифест <intent-filter> с помощью (кстати, что эквивалентно в iOS?)

    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
        <data android:mimeType="text/plain" />
    </intent-filter>

и успешно увидел мое приложение в общей папке другого приложения в списке .... и щелкнув по нему, открывается мое приложение ... check

Теперь мне нужно получить данные о намерениях в моем приложении.Я попытался использовать Linking от реактивного носителя, но безуспешно, я не получаю ни одного из журналов консоли.

Ниже приведен мой код, что мне не хватает, или я должен сделать для своих проектов Android и iOS,чтобы получить данные о намерениях?

index.js

import App from './App';

App.js

import { persistStore } from 'redux-persist';
import { Navigation } from "react-native-navigation";
import { Linking } from 'react-native';
// other imports ...
// [...]

const handleOpenURL = (event) => {
  console.log(event.url);
};

Linking.addEventListener('url', handleOpenURL);
Linking.getInitialURL().then((url) => {
    if (url) {
      console.log('Initial url is: ' + url);
    }
  }).catch(err => console.error('An error occurred', err));

Navigation.events().registerAppLaunchedListener(() => {
   persistStore(store, null, () => {
    // Register Screens ...
    Navigation.setRoot({
    // Setting root to home page (home.js)

Home.js // также пробовал там

// imports
class Home extends Component {
//...
   _handleOpenURL(event) {
    console.log(event.url);
   };
   componentDidMount() {
      Linking.addEventListener('url', this._handleOpenURL);
      Linking.getInitialURL().then((url) => {
        if (url) {
            console.log('Initial url is: ' + url);
        }
      }).catch(err => console.error('An error occurred', err));
   }

MainActivity.java // это, вероятно, где я пропускаю что-то вроде getIntent ()?

package com.my.app;

import com.imagepicker.permissions.OnImagePickerPermissionsCallback;
import com.facebook.react.modules.core.PermissionListener;
import com.reactnativenavigation.NavigationActivity;

public class MainActivity extends NavigationActivity implements OnImagePickerPermissionsCallback {

  private PermissionListener listener;

  @Override
  public void setPermissionListener(PermissionListener listener) {
    this.listener = listener;
  }

  @Override
  public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (listener != null) {
      listener.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  }

}

Я пробовал на вышеупомянутом MainActivity решении от Дэйв Беннет , но получил ошибку, которую не удалось устранить (ошибка: метод не переопределяет или не реализует метод изсупертип)

Спасибо за помощь!

------ пакеты

  • "реагируют": "16.6.3",
  • "Reaction-native": "0.57.8",
  • "Reaction-native-navigation": "^ 2.6.0"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...