Car*_*man 0 html javascript android webview
我有一个功能,一旦加载了两个输入字段就加载到网站上.
function setCredentials(name, key){
document.getElementById('zoneIdent').value=name;
document.getElementById('zonePwd').value=key;
GInterface.traiterEvenementValidation();
}
Run Code Online (Sandbox Code Playgroud)
它包含在文件夹中的a auto.html中*root of project*/assets/www/.(我尝试将它放在/res/assets/www/文件夹中,但我从AndroidStudio获得以下内容:Android Resource Packaging: [QuickPronote] invalid resource directory name: C:\Users\Yann\DEV\workspace\QuickPronote\res/assets
我必须在这种类型的网站上使用此功能:http://81.192.152.242:8001/mobile.eleve.html?FD=1.请注意,网站无法快速加载.
我正在使用以下代码:
myWebView.loadUrl(String.valueOf(url));
myWebView.loadUrl("javascript:setCredentials('" + name + "','" + key + "')");
Run Code Online (Sandbox Code Playgroud)
其中url,name和key是该用户已定义的字符串.
我尝试了,即使使用虚拟文本,这两个字段也已完成并且应启动验证操作,但似乎函数加载过快,或者根本没有完成,因为一旦网站完全加载,没有值apearing或错误消息说凭证是错误的.
如果你的解决方案包括使用像JQuery这样的外部插件/库,请告诉我.
PS:不使用PhoneGap或其他任何东西. 这是我从一开始就得到代码的地方.
首先,确保您已在webview上启用了javascript,
webView.loadUrl(String.valueOf(url));
webView.getSettings().setJavaScriptEnabled(true);
然后添加一个侦听器以在页面完成后加载名称/键.
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.loadUrl("javascript:setCredentials('" + name + "','" + key + "')");
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:
我想我找到了你的问题.页面中缺少javascript"setCredentials"方法: http://81.192.152.242:8001/mobile.professeur.html?FD=1...你忘记添加了吗?
当我将上述onPageFinished方法更改为:
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
myWebView.loadUrl("javascript:document.getElementById('zoneIdent').value='test name';");
}
});
Run Code Online (Sandbox Code Playgroud)
"标识符"字段在该页面上填充"测试名称".
| 归档时间: |
|
| 查看次数: |
1524 次 |
| 最近记录: |