在Android webview中没有调用Javascript函数

在Android webview中没有调用Javascript函数,第1张

概述我正在制作一个在 android webview中运行的应用程序.我面临一个奇怪的问题, 我的 JavaScript函数未被调用< a>< / a> onClick方法. 这是我的html和JavaScript代码: <html><script type="text/javascript" src="http://blue.xxxxxxxx.com/xxxxx/site/js/jquery.j 我正在制作一个在 android webvIEw中运行的应用程序.我面临一个奇怪的问题,
我的 JavaScript函数未被调用< a>< / a> onClick方法.

这是我的HTML和JavaScript代码:

<HTML><script type="text/JavaScript" src="http://blue.xxxxxxxx.com/xxxxx/site/Js/jquery.Js"></script><script>function openfileDialog(){    //$("#file").click();       alert("Test");}</script><body><form action="upload_file.PHP" method="post"enctype="multipart/form-data"><label for="file">filename:</label><input type="file" name="file" ID="file"><br><input type="submit" name="submit" value="submit"></form><a href="JavaScript:;" onclick="openfileDialog();">Shujaat</a></body></HTML>

这是我的整个java webvIEws代码.

package com.example.findozerapp;import my.functions.MyFunctions;import androID.app.Activity;import androID.content.Context;import androID.graphics.Bitmap;import androID.os.Bundle;import androID.webkit.WebSettings.ZoomDensity;import androID.webkit.WebVIEw;import androID.webkit.WebVIEwClIEnt;public class MainActivity extends Activity {Context context = MainActivity.this;Activity activity = MainActivity.this;WebVIEw webVIEw;MyFunctions myFunctions;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    myFunctions = new MyFunctions(activity);    webVIEw = (WebVIEw) findVIEwByID(R.ID.webVIEw1);    configureWebvIEw();}@OverrIDeprotected voID onStart() {    // Todo auto-generated method stub    super.onStart();    webVIEw.loadUrl("http://www.xxxxxxx.com/qadir/");}private voID configureWebvIEw() {    webVIEw.setpadding(0,0);    webVIEw.setinitialScale(myFunctions.setWebVIEwScale());    webVIEw.getSettings().setDefaultZoom(ZoomDensity.FAR);    webVIEw.getSettings().setJavaScriptEnabled(true);    webVIEw.getSettings().setJavaScriptCanopenwindowsautomatically(true);    webVIEw.getSettings().setBuiltInZoomControls(true);    webVIEw.getSettings().setLoaDWithOverviewmode(true);    webVIEw.getSettings().setUseWIDeVIEwPort(true);    webVIEw.getSettings().setCacheMode(MODE_APPEND);    webVIEw.setWebVIEwClIEnt(new MyWebVIEwClIEnt());}private class MyWebVIEwClIEnt extends WebVIEwClIEnt {    @OverrIDe    public voID onPageStarted(WebVIEw vIEw,String url,Bitmap favicon) {        // Todo auto-generated method stub        super.onPageStarted(vIEw,url,favicon);    }    @OverrIDe    public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw,String url) {        // Todo auto-generated method stub        return super.shouldOverrIDeUrlLoading(vIEw,url);    }    @OverrIDe    public voID onPageFinished(WebVIEw vIEw,String url) {        // Todo auto-generated method stub        super.onPageFinished(vIEw,url);    }} }

请注意我已在我的webvIEw中启用了JavaScript.

但它没有调用我的JavaScript函数openfileDialog().

还有一件事.每当我在默认的androID浏览器中加载我的这个网页时,它的工作完美.哪里我做错了.请检查我的webvIEw设置.

解决方法 如果已将targetSdkVersion设置为17或更高,则必须将@JavaScriptInterface注释添加到您希望网页代码可用的任何方法(该方法也必须是公共的).如果您未提供注释,则在AndroID 4.2或更高版本上运行时,您的网页将无法访问该方法. 总结

以上是内存溢出为你收集整理的在Android webview中没有调用Javascript函数全部内容,希望文章能够帮你解决在Android webview中没有调用Javascript函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1141090.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存