Jquery在混合android中不起作用,但在网络中起作用

问题描述 投票:0回答:2

我试图在我的混合应用程序中使其工作,但是它不希望起作用,有人知道为什么它不起作用吗?

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");
        });
});

我的MainActivity看起来像:

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

按钮如下:

<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>

以及隐藏的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>

关于某事可能是一个问题,但我不确定它是一个Web应用程序,但使用普通的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" />

已经感谢您的忠告]

----- UPDATE -----我检查Xamarin中的日志,然后看到:

E / eglCodecCommon(2140):****错误未知类型0x65080020(gLSizeof,73)“未捕获的SyntaxError:意外的令牌http://192.168.0.16:8081/home.aspx/js/jquery-2.1.1.min.js(3)I / chromium(2140):[INFO:CONSOLE(3)]“未捕获的语法错误:意外的令牌http://192.168.0.16:8081/home.aspx/js/jquery-2.1.1.min.js(3)“未捕获的SyntaxError:意外令牌http://192.168.0.16:8081/home.aspx/js/jquery-ui-1.10.4.js(3)“未捕获的ReferenceError:未定义$”,来源:http://192.168.0.16:8081/home.aspx/(53)I / chromium(2140):[INFO:CONSOLE(3)]“未捕获的语法错误:意外的令牌http://192.168.0.16:8081/home.aspx/js/jquery-ui-1.10.4.js(3)

不知道为什么它试图像这样加载js脚本,我应该如何将包含的jQuery传递给客户端?

我发现了无法加载的原因,我在网页中包含了要加载到混合android应用程序中的网页,加载失败。我是否应该将这些内容包含到应用程序中,还有其他关于jquery包含内容的引用。

我的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" />
android jquery xamarin hybrid
2个回答
0
投票

尝试此

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

将上述功能添加到您的webView中。它可能有用,但我没有测试。


0
投票

工作正常。尝试执行它。

我的问题是Https。当我在xamarin.android中使用http时,会抛出上述错误。但是在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>
© www.soinside.com 2019 - 2024. All rights reserved.