最近在研究jsbridge, 一直在想怎么样才能让需要startActivityForResult比如打开相机拍照这样的操作在webView中能更简单一点, 直到我发现了这篇文章
两个类,让你再也不用实现onActivityResult()
看了之后, 马上模仿了文中的代码实现了一下.
Fragment:
1 | public class OnActResultEventDispatcherFragment extends Fragment{ |
ActResultRequest:
1 | public class ActResultRequest { |
MainActivity:
1 | public class MainActivity extends AppCompatActivity { |
SecondActivity
1 | public class SecondActivity extends AppCompatActivity { |
按照这样的思路, 如果需要简化jsbridge中startActivityForResult的操作, 我们只需要把Fragment和WebView绑定在一起.比如给这个Fragment取名叫WebViewFragment, 它的布局中只有一个我们封装好的WebView, 这个WebView需要监听jsbridge的所有事件我们都在fragment中写好, 包括onActivityResult中的事件, 当然也可以在这个fragment中用一个专门的管理类来管理注册的事件.以后Activity中有用到WebView的地方我们就直接用这个WebViewFragment就好了.也就是说, 把这个WebViewFragment, 当成我们之前的WebView.