我尝试在我的混合应用程序中完成这项工作,但它不想运行,任何人都知道它为什么不起作用?
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):**** ERROR未知类型0x65080020(glSizeof,73) “未捕获的SyntaxError:意外的标记&lt;”,来源: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&lt;”,source:http://192.168.0.16:8081/home.aspx/js/jquery-2.1.1.min.js(3) “未捕获的SyntaxError:意外的标记&lt;”,来源: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)]“Uncaught SyntaxError:Unexpected token&lt;”,source: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" />
答案 0 :(得分:0)
试试这个
WebView wb = new WebView(this);
wb.getSettings().setJavaScriptEnabled(true);
wb.getSettings().setDomStorageEnabled(true);
wb.getSettings().setAllowFileAccessFromFileURLs(true);
wb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
将以上功能添加到您的webView。 它可能有用,我没有测试它。
答案 1 :(得分: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>