2016-03-31 95 views
3

我有一個React Native的webview組件。 web視圖應該支持輸入類型的文件,所以我這樣做是因爲:React Native onActivityResult不起作用

File Upload in WebView

和web視圖實現ActivityEventListener並覆蓋onActivityResult.But的onActivityResult不工作。

守則是

class RNWebView extends WebView implements ActivityEventListener { 
     protected class GeoWebChromeClient extends WebChromeClient { 
      public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) { 
      ... 
      mActivity.startActivityForResult(chooserIntent, INPUT_FILE_REQUEST_CODE); 
      return true; 
      } 
     } 

    public RNWebView(ReactContext reactContext, Activity activity) { 
     super(reactContext); 
     // Add the listener for `onActivityResult` 
     reactContext.addActivityEventListener(this); 
     ... 
    } 

@Override 
public void onActivityResult(final int requestCode, final int resultCode, final Intent intent) { 
    // Your logic here 
    Log.d("Tanck", "requestCode:" + requestCode + "----" + "resultCode:" + resultCode); 
} 

} 
+0

我也有一個onActivityResult沒有得到27.0.2和Android棉花糖(6.0.1) - Nexus 5上調用的問題。 – SudoPlz

回答

6

也許下旬希望它幫助。

本地模塊的onActivityResultReactContext調用,其被ReactInstanceManagerImpl調用,其在0.29中被ReactActivity調用。在上面的示例中,MyWb擴展了活動不是ReactActivity,因此ReactInstanceManagerImpl從不被調用。

由於您已擁有自己的ReactInstanceManager對象引用,因此解決方案僅在您的活動的onActivityResult調用ReactInstanceManageronActivityResult中。

+0

這就是我需要的!謝謝。我正在使用RN 0.33.1。花了我兩天的時間來找到這個。 – Gagege

相關問題