2017-06-19 10 views
0

私はReact Nativeアプリケーションを持っています。 React Nativeによって生成されるMainActivityがあり、PluginActivityを作成しました。プラグインアクティビティは、他のアプリケーションからの要求を処理します。プラグインのアクティビティは次のようになります。ファイルを取得して保存し、共有された環境設定を介して、ネイティブMainActivityに反応します。アクティビティ間の意図

問題: アプリケーションのインテント部分が機能していません。

Intent intent = new Intent(PluginActivity.this, MainActivity.class); 
long valid = validTo - System.currentTimeMillis(); 
String uriString = "company://upload"; 
intent.setData(Uri.parse(uriString)); 
startActivity(intent); 

私はリンクと反応ネイティブでuriStringをキャッチしたいのですが、動作していない:私は次のようにテントを作成します。 のAndroidManifest.xmlがあります:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.company" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <uses-sdk 
     android:minSdkVersion="16" 
     android:targetSdkVersion="22" /> 

    <application 
     android:name=".MainApplication" 
     android:allowBackup="true" 
     android:label="@string/app_name" 
     android:icon="@mipmap/ic_launcher" 
     android:theme="@style/AppTheme"> 
     <activity 
     android:name=".MainActivity" 
     android:launchMode="singleTask" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" 
     android:configChanges="keyboard|keyboardHidden|orientation|screenSize" 
     android:windowSoftInputMode="adjustResize"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="company" 
       android:host="*" /> 
     </intent-filter> 
     </activity> 
     <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> 

     <activity android:name=".PluginActivity"> 
      <intent-filter> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

      <intent-filter> 
       <action android:name="android.intent.action.SEND" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

私は、次のそれが正常に動作しているとのディープリンクをしようとしている:

adb shell am start -W -a android.intent.action.VIEW -d "company://$1" com.company/.MainActivity 

PluginActivityも働いて、次のテキストが書かれているために表示。

Toast.makeText(PluginActivity.this, "Upload started, starting useer autorization", Toast.LENGTH_SHORT).show(); 

バージョン:

  • が反応し、ネイティブ: "0.42.0"
  • のAndroid SDK:23
+0

開くコンポーネント(この場合はMainActivity.class)を指定しています。あなたはそれを取り除き、それを試みることができますか?最初の行の代わりにIntent intent = new Intent(Intent.ACTION_VIEW)を使用します。 –

+0

これはウェブドメインではなく、別のアクティビティです。 – PumpkinSeed

+0

これはうまくいくようです。うん、ありがとう、私はそれを使用した: '新しいインテント(Intent.ACTION_VIEW、Uri.parse(uriString))'、答えを書いてください。 – PumpkinSeed

答えて

0

あなたはコンポーネント(この場合はMainActivity.class)を指定しています開く。特定のコンポーネント名を削除してから、同じ名前を試してみることができますか?以下を使用してください:

long valid = validTo - System.currentTimeMillis(); 
String uriString = "company://upload"; 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uriString)); 
startActivity(intent); 

ドキュメントIntent

関連する問題