作者:你是我的小心肝啊哈哈 | 来源:互联网 | 2023-09-25 11:23
坦白讲应该是不难的,但本人不会js所以开发起来有点难以下手,百度了很多的demo看了之后自己写完还是有问题不知道什么情况特来请教大家我自己是在android平台写的登陆
坦白讲应该是不难的,但本人不会js 所以开发起来有点难以下手 , 百度了很多的demo看了之后自己写完还是有问题 不知道什么情况 特来请教大家
我自己是在android平台写的
登陆地址: http://101.226.249.86:8080/jservice/#/SignIn (将这个地址用webview显示出来)
一.交互方式:
客户端网页中发起一个自定义url的请求,浏览器可以拦截到对应的请求;这一过程
相当于网页给Webview 发起了一个事件通知,其中自定义URL请求格式为:
ccn-webkit-bridge://xxx?functiOnName=xx
其中functionName参数是回调Javascript函数的名字
接着webview中直接执行Javascript函数,获取到对应的参数;
执行相关的native操作.
二.
客户端登录结束, 待服务器返回登录结果之后,执行如下的Javascript代码
xxx() {
null
}
以上是人家给我的东西, 剩下都靠自己写
以下第一张图是登录页面,是一个webview, ,第二张是点击登录后的样子
附上自己的一部分代码 希望对答者有帮助,谢谢.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| webView.loadUrl("http://101.226.249.86:8080/jservice/#/SignIn");
//启用支持Javascript 加上这句话才能使用Javascript方法
WebSettings settings = webView.getSettings();
settings.setJavascriptEnabled(true);
//优先使用缓存
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.addJavascriptInterface(new MyJavascriptInterface(), "getResult");
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return false;
}
});
//window.location.href = "ccn-webkit-bridge://did-login?functiOnName=getResult";
//webView.addJavascriptInterface(new Object(), "getResult"); |