Android 本机应用程序到WebView并在登录后返回
我的片段中现在有以下代码Android 本机应用程序到WebView并在登录后返回,android,webview,native,Android,Webview,Native,我的片段中现在有以下代码 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_login, container, false); if (mWebView != null) { mWebView.dest
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_login, container, false);
if (mWebView != null) {
mWebView.destroy();
mWebView = null;
}
mWebView = (WebView) view.findViewById(R.id.web_view);
mWebView.loadUrl("http://10.0.2.2:8000/login");
mIsWebViewAvailable = true;
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new WebViewJavaScriptInterface(getActivity()), "AndroidAppCallBack");
mWebView.setWebViewClient(new LoginWebViewClient());
return view;
}
public class WebViewJavaScriptInterface {
Context mContext;
public WebViewJavaScriptInterface(Context context) {
mContext = context;
}
@JavascriptInterface
public void handleResponse(String response) {
Intent intent = new Intent(mContext, MockService.class);
startActivity(intent);
//mContext.startService(intent);
}
}
private class LoginWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getPath().contains("myapp")) {
return false;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
}
在本机应用程序中,我单击一个按钮,该按钮要求用户登录才能访问它。因此,它将在那里启动WebView,它运行良好。用户成功进行身份验证,并在成功页面上以按钮结束。当我点击这个按钮时,它应该使用我创建的接口调用流中的下一个类,但它没有
下面是我回调接口的JavaScript代码
<input type="button" value="Logged in" onClick="processResponse('Success')" />
<script type="text/javascript">
function processResponse(response) {
AndroidAppCallBack.handleResponse(response);
}
</script>
函数processResponse(响应){
AndroidAppCallBack.handleResponse(响应);
}
除此之外,我调用的网页在作为WebView加载时不会加载任何CSS/JS。我需要打开什么来加载所有资源吗?网页完全不在我的控制范围内。一旦成功通过身份验证,调用JavascriptInterface方法,该方法将删除webview片段并将数据传递到Flow中的下一个类。我是Android开发的新手,如果您知道一个例子,您能给我举个例子吗?