我正在尝试通过自动连字符来完全证明 Android 中的文本。如here所述,我已经使用 WebView 实现了充分的理由。我已经阅读了几个关于 Android 中自动连字的线程,但没有一个适用于 WebViews。我尝试使用新的 CSS3 连字符:auto(包括 -webkit-hyphens:auto),但 Android WebKit 还不支持它。
我在这里找到了一篇博客文章,其中提到了使用连字符 JavaScript,但我不知道如何实现它(JavaScript 和 HTML 是待办事项列表中的下一个)。由于 .js 文件的大小,我不想简单地使用webView.loadUrl("javascript:someFunction()");
这是我目前正在使用的代码:
public class TestWebView extends Activity {
@Override
public void onCreate (Bundle savedState) {
WebView webView;
super.onCreate(savedState);
webView = new WebView(this);
setContentView(webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/WorkingExample.html");
}
}
这是HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>Hyphenator.js</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
body {
width:30%;
margin-left:35%;
margin-right:35%;
}
.text {
text-align:justify;
}
</style>
<script src="Hyphenator.js" type="text/javascript"></script>
<script type="text/javascript">
Hyphenator.config({
displaytogglebox : true,
minwordlength : 4
});
Hyphenator.run();
</script>
</head>
<body>
<h1>Example of using Hyphenator.js</h1>
<h2>Deutsch</h2>
<p class="hyphenate text" lang="de">Deutschsprachige Beispieltexte haben natürlicherweise längere Wortzusammensetzungen als englischsprachige. Aber auch <span lang="en">“hyphenation”</span> ist ein ziemlich langes Kompositum.</p>
<p class="hyphenate text" lang="de">Verändern Sie die Fenstergrösse um den Effekt der Silbentrennung zu sehen.</p>
<h2>English</h2>
<p class="hyphenate text" lang="en">English words are shorter in the average then german words. <span lang="de">«Silbentrennungsalgorithmus»</span> for example is quite long.</p>
<p class="hyphenate text" lang="en">Resize the window to see hyphenation in effect.</p>
<h2>Links</h2>
<p class="hyphenate text" lang="en">Not only words but also links like <a href="http://code.google.com/p/hyphenator/">http://code.google.com/p/hyphenator/</a> are processed. But in a special manner (using zero width space).</p>
</body>
</html>
与 html 文件一起存储的是 Hyphenator.js 文件。在我的计算机浏览器中打开 HTML 文件按预期工作,但在电话上我没有运气: 最终,我希望动态生成文本,但让它工作将是一个巨大的帮助。谢谢。