Jon*_*Jon 11 javascript android android-webview
我有一个使用Android WebView的应用程序,以及一些JavaScript.当我的WebViewClient调用时onPageFinished(),我会提醒我的JavaScript运行初始化方法.在我点击之前启用并加载了我的JavaScript onPageFinished().
在我使用的JavaScript方法中window.innerWidth.但是,它返回的值总是错误的并且总是相同的.不管我的方向它报告的内部宽度为320,内部高度为240(纵向和横向正确的宽度值分别为360和598).在别的地方我访问window.innerWidth或window.innerHeight在JavaScript它给了我一个准确的数字.
更令人费解的是,如果我直接在我的onPageFinished()通话中检查WebView的高度或宽度
int height = view.getHeight();
int width = view.getWidth();
然后它总是正确返回(虽然它返回确切的像素数,而不是DIP).这让我觉得一切都已经完成了WebView的加载,因此我的JavaScript不应该有任何问题.
关于发生了什么的任何想法?
提前致谢!
小智 8
这是因为Javascript在WebView的View相关初始化之前执行.Android WebView向JS返回320x240默认值.一段时间后执行你的JS就好了,就像这样
function go() {
int height = view.getHeight();
int width = view.getWidth();
};
window.setTimeout(go, 300);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4869 次 |
| 最近记录: |