私はReact Nativeのwebviewコンポーネントを持っています。 WebViewが入力タイプをサポートしなければならないファイルであるので、私はとしてそれを実行します。ReactネイティブonActivityResultが機能しない
とWebViewがActivityEventListenerを実装し、onActivityResultが動作していないonActivityResult.Butオーバーライドします。
コード
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);
}
}
また、rn 27.0.2とAndroid Marshmallow(6.0.1) - Nexus 5ではonActivityResultが呼び出されないという問題があります。 – SudoPlz