简体   繁体   English

Jquery 在混合 android 中不起作用,但在 web 中工作

[英]Jquery does not work in hybrid android but works in web

I try to make this work in my hybrid app however it does not want to function, anybody any idea why it does not work?我尝试在我的混合应用程序中进行这项工作,但是它不想运行,有人知道为什么它不起作用吗?

jQuery().ready(function () {

        $("#b4all_about").bind('click', function (e) {
            //alert();
            $("#tbb4all_about").removeClass("b4DisplayNone").addClass("b4DisplayBlock");
            $("#tbb4all_works").removeClass("b4DisplayBlock").addClass("b4DisplayNone");
            $("#tbb4all_join").removeClass("b4DisplayBlock").addClass("b4DisplayNone");
        });
        $("#b4all_works").bind('click', function (e) {
            $("#tbb4all_about").removeClass("b4DisplayBlock").addClass("b4DisplayNone");
            $("#tbb4all_works").removeClass("b4DisplayNone").addClass("b4DisplayBlock");
            $("#tbb4all_join").removeClass("b4DisplayBlock").addClass("b4DisplayNone");
        });
        $("#b4all_join").bind('click', function (e) {
            `enter code here`$("#tbb4all_about").removeClass("b4DisplayBlock").addClass("b4DisplayNone");
            $("#tbb4all_works").removeClass("b4DisplayBlock").addClass("b4DisplayNone");
            $("#tbb4all_join").removeClass("b4DisplayNone").addClass("b4DisplayBlock");
        });
});

my MainActivity looks like:我的 MainActivity 看起来像:

WebView web = new WebView(this);
SetContentView(web);
web.Settings.JavaScriptEnabled = true;
web.AddJavascriptInterface(new JS2CS(this), "JS2CS");
web.LoadUrl(mobile2.security.key.content);

The buttons as this:按钮如下:

<div style="width: 100%; align-items: center">
   <div class="sGeneral" id="b4all_about">About us</div>
   <div class="sGeneral" id="b4all_works">How it works</div>
   <div class="sGeneral" id="b4all_join">Join us</div>
</div>

And the hidden divs like this:和隐藏的div是这样的:

 <table>
    <tr>
        <td>
            <div id="tbb4all_about" class="b4DisplayNone">1</div>
            <div id="tbb4all_works" class="b4DisplayNone">2</div>
            <div id="tbb4all_join" class="b4DisplayBlock">3</div>
        </td>
    </tr>
</table>

On thing might be an issues but I am not sure as its a web application but using normal jquery as:事情可能是一个问题,但我不确定它是一个网络应用程序,但使用普通的 jquery 作为:

<script src="js/jquery-2.1.1.min.js"></script>
<script src="js/jquery-ui-1.10.4.js" type="text/javascript"></script>
<link href="css/ui-lightness/jquery-ui-1.10.4.min.css" rel="stylesheet" />
<link href="css/ui-lightness/jquery-ui-1.10.4.css" rel="stylesheet" />

Thanks for the great advise already )已经谢谢你的好建议)

-----UPDATE----- I check the log in Xamarin and see this: -----更新-----我检查了 Xamarin 中的日志,看到了这个:

E/eglCodecCommon( 2140): **** ERROR unknown type 0x65080020 (glSizeof,73) "Uncaught SyntaxError: Unexpected token <", source: http://192.168.0.16:8081/home.aspx/js/jquery-2.1.1.min.js (3) I/chromium( 2140): [INFO:CONSOLE(3)] "Uncaught SyntaxError: Unexpected token <", source: http://192.168.0.16:8081/home.aspx/js/jquery-2.1.1.min.js (3) "Uncaught SyntaxError: Unexpected token <", source: http://192.168.0.16:8081/home.aspx/js/jquery-ui-1.10.4.js (3) "Uncaught ReferenceError: $ is not defined", source: http://192.168.0.16:8081/home.aspx/ (53) I/chromium( 2140): [INFO:CONSOLE(3)] "Uncaught SyntaxError: Unexpected token <", source: http://192.168.0.16:8081/home.aspx/js/jquery-ui-1.10.4.js (3) E/eglCodecCommon(2140): **** ERROR 未知类型 0x65080020 (glSizeof,73) “Uncaught SyntaxError: Unexpected token <”,来源: http : //192.168.0.16 :8081/home.aspx/js/jquery-2.1 .1.min.js (3) I/chromium(2140): [INFO:CONSOLE(3)] "Uncaught SyntaxError: Unexpected token <", source: http://192.168.0.16:8081/home.aspx/js /jquery-2.1.1.min.js(3)《Uncaught SyntaxError: Unexpected token <》,来源: http : //192.168.0.16 : 8081/home.aspx/js/jquery-ui-1.10.4.js ( 3)“Uncaught ReferenceError: $ is not defined”,来源: http : //192.168.0.16 : 8081 /home.aspx/ (53) I/chromium(2140): [INFO:CONSOLE(3)] “Uncaught SyntaxError:意外令牌<",来源: http : //192.168.0.16 : 8081/home.aspx/js/jquery-ui-1.10.4.js (3)

No idea why it tries to load the js scripts like this, how should I get the jquery includes to th client?不知道为什么它会尝试像这样加载 js 脚本,我应该如何将 jquery 包含到客户端?

I found the reason why it does not load, I have includes into my webpage which I load into the hybrid android app, this is not loaded good.我找到了它无法加载的原因,我已将其包含到我加载到混合 android 应用程序中的网页中,这加载不好。 Should I include these into the app are have a other references to the includes for jquery.我是否应该将这些包含到应用程序中,还有其他对 jquery 包含的引用。

My jQuery is like this:我的 jQuery 是这样的:

<script src="/js/jquery-2.1.1.min.js"></script>
<script src="/js/jquery-ui-1.10.4.js" type="text/javascript"></script>
<link href="/css/ui-lightness/jquery-ui-1.10.4.min.css" rel="stylesheet" />
<link href="/css/ui-lightness/jquery-ui-1.10.4.css" rel="stylesheet" />

Try this尝试这个

WebView wb = new WebView(this);
    wb.getSettings().setJavaScriptEnabled(true);
    wb.getSettings().setDomStorageEnabled(true);
    wb.getSettings().setAllowFileAccessFromFileURLs(true);
    wb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

Add the above features to your webView.将上述功能添加到您的 webView。 it may work, i didn't test it.它可能有效,我没有测试过。

Its working fine.它的工作正常。 Try to execute it.尝试执行它。

My issue was Https.我的问题是 Https。 When I use http in xamarin.android it throwing above error.当我在 xamarin.android 中使用 http 时,它会抛出上述错误。 But working fine on https.但是在 https 上工作正常。

<html>
<body>
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <h1>HybridWebView Test</h1>
    <br />
    Enter name: <input type="text" id="name">
    <br />
    <br />
    <button type="button" onclick="javascript: invokeCSCode($('#name').val());">Invoke C# Code</button>
    <br />
    <p id="result">Result:</p>
    <script type="text/javascript">
        function log(str) {
            $('#result').text($('#result').text() + " " + str);
        }

        function invokeCSCode(data) {
            try {
                log("Sending Data:" + data);
                invokeCSharpAction(data);
            }
            catch (err) {
                log(err);
            }
        }
    </script>
</body>
</html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 安卓混合应用程序(基于科多瓦)在安卓可穿戴设备中工作吗? - Does android Hybrid application(Cordova based) works in android wearables? 所有的JavaScript调用都可以在Hybrid Android应用中使用吗? - Does all javascript calls work in Hybrid Android app? Web Service如何在Android中工作 - How does Web Service works in Android 我在Android中创建的LinkedIn访问令牌无法在网络上使用。 如何制作可在网络上使用的产品? - LinkedIn Access Token which I create in Android does not work on web. How can I make one that works on web? JavaScript和JQuery在Eclipse Android模拟器中不起作用 - JavaScript and JQuery does not works in eclipse android emulator Java Web Start-可以在Android上使用吗? - Java Web Start - Does it work with Android? kivy vs android studios vs hybrid最适合初学者 - kivy vs android studios vs hybrid which works best for beginners Cordova Hybrid App失败,旧版Android构建成功 - Cordova Hybrid App fails, Legacy Android Build Works Android Hybrid App:JQueryMobile ajax不适用于https,但适用于http - Android Hybrid App : JQueryMobile ajax is not working with https but works with http 在iPhone / Android上运行jQuery show()/ hide()吗? - Does jQuery show() / hide() on iPhone / Android work?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM