Frage

Ich habe ein UIWebView in dem ich möchte, dass Telefonnummern erkannt werden.

Mein Problem ist das in einer einzigen UIWebView, Einige Telefonnummern werden erkannt und klickbar, andere nicht und ich habe keine Ahnung warum.

Hier ist ein Ausschnitt meines HTML:

0123456789 9999999999 
<div>1111111111</div>
<div>
  <ul>
    <li>
      <div>
        <h4>Name</h4>
        <p>Name</p>
      </div>
    </li>
    <li>
      <div>
        <h4>Telephone</h4>
        <p>0466303737</p>
      </div>
    </li>
  </ul>
</div>

Die 3 ersten Zahlen in den 2 ersten Zeilen werden erkannt, aber die im Inneren deru003Cp> Element (Zeile 14) ist nicht.

Weiß jemand warum? Gibt es etwas dagegen?

Bearbeiten: Wie in den Kommentaren angefordert, finden Sie hier die volle HTML:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">/*  HTML5 ✰ Boilerplate  */

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,  footer, header, hgroup, 
menu, nav, section, summary, time, mark, audio, video {
  margin:0;
  padding:0;
  border:0;
  outline:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}                  
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
    display:block;
}
nav ul { list-style:none; }
blockquote, q { quotes:none; }
blockquote:before, blockquote:after,
q:before, q:after { content:''; content:none; }
a { margin:0; padding:0; font-size:100%; vertical-align:baseline; background:transparent; }
ins { background-color:#ff9; color:#000; text-decoration:none; }
mark { background-color:#ff9; color:#000; font-style:italic; font-weight:bold; }
del { text-decoration: line-through; }
abbr[title], dfn[title] { border-bottom:1px dotted; cursor:help; }
table { border-collapse:collapse; border-spacing:0; }
hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
input, select { vertical-align:middle; }


body { font:13px/1.231 sans-serif; *font-size:small; } 
select, input, textarea, button { font:99% sans-serif; }
pre, code, kbd, samp { font-family: monospace, sans-serif; }

body, select, input, textarea {   color: #444; }
h1,h2,h3,h4,h5,h6 { font-weight: bold; }
html { overflow-y: scroll; }

a:hover, a:active { outline: none; }
a, a:active, a:visited { color: #607890; }
a:hover { color: #036; }

ul, ol { margin-left: 1.8em; }
ol { list-style-type: decimal; }

nav ul, nav li { margin: 0; } 
small { font-size: 85%; }
strong, th { font-weight: bold; }
td, td img { vertical-align: top; } 
sub { vertical-align: sub; font-size: smaller; }
sup { vertical-align: super; font-size: smaller; }
pre {  padding: 15px;  white-space: pre;  white-space: pre-wrap;  white-space: pre-line;  word-wrap: break-word; }
textarea { overflow: auto; } 
.ie6 legend, .ie7 legend { margin-left: -7px; } 
input[type="radio"] { vertical-align: text-bottom; }
input[type="checkbox"] { vertical-align: bottom; }
.ie7 input[type="checkbox"] { vertical-align: baseline; }
.ie6 input { vertical-align: text-bottom; }
label, input[type=button], input[type=submit], button { cursor: pointer; }
button, input, select, textarea { margin: 0; }
input:valid, textarea:valid   {  }
input:invalid, textarea:invalid { border-radius: 1px;  -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red;  box-shadow: 0px 0px 5px red; }
.no-boxshadow input:invalid, 
.no-boxshadow textarea:invalid { background-color: #f0dddd; }

::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; }
::selection { background:#FF5E99; color:#fff; text-shadow: none; } 
a:link { -webkit-tap-highlight-color: #FF5E99; } 

button {  width: auto; overflow: visible; }
.ie7 img { -ms-interpolation-mode: bicubic; }

.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
.hidden { display: none; visibility: hidden; } 
.visuallyhidden { position: absolute !important; clip: rect(1px 1px 1px 1px);  clip: rect(1px, 1px, 1px, 1px); }
.invisible { visibility: hidden; }
.clearfix:before, .clearfix:after {  content: "\0020"; display: block; height: 0; visibility: hidden;    } 
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }


 /* Primary Styles
    Author: 
 */














@media all and (orientation:portrait) { 

}

@media all and (orientation:landscape) { 

}

@media screen and (max-device-width: 480px) {


  /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
}

@media print {
  * { background: transparent !important; color: #444 !important; text-shadow: none !important; }
  a, a:visited { color: #444 !important; text-decoration: underline; }
  a:after { content: " (" attr(href) ")"; } 
  abbr:after { content: " (" attr(title) ")"; }
  .ir a:after { content: ""; }  
  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
  thead { display: table-header-group; }  
  tr, img { page-break-inside: avoid; }
  @page { margin: 0.5cm; }
  p, h2, h3 { orphans: 3; widows: 3; }
  h2, h3{ page-break-after: avoid; }
}

/*** CUSTOM CSS **/

body {
  font-family: "Helvetica", sans-serif;
  background-color: #767676;
  color: #d4d4d4;
  font-size: 11pt;
  padding: 10px;
}

p {
  padding: 6px 0px;
}

h1 {
  text-align: center;
  font-style: italic;
  font-size: 14pt;
  margin-bottom: 10px;
}

h3 { width: 100%; clear: both;}

ul {
  margin-left: 32px;
  list-style-image: url(favourite-star-on.png);
}

.tableau ul { margin-left: 0px;   font-size: 9pt; }
.tableau li { display: block; padding: 3px 0; border-top: 1px dotted #e4e4e4; }
li h4 { float: left; width: 112px; padding: 6px 3px; }
li p { float: right; width: 172px; padding: 6px 3px; }
div:before, div:after {  content: "\0020"; display: block; height: 0; visibility: hidden;    } 
div:after { clear: both; }
div { zoom: 1; }

.tableau { background-color: #fefefe; border: 1px solid #e4e4e4; color: #3e3e3e; }
.tableau h2 { background-color: #f3f3f3; width: 288px; padding: 5px; border-bottom: 1px solid #e4e4e4; }
.tableau h3 { background-color: #f3f3f3; font-style: italic; width: 288px; padding: 5px; border-bottom: 1px dotted #e4e4e4; }
</style></head><body>0123456789 9999999999  <div class="myclass">1111111111</div> <div class="myclass">   <ul>    <li>      <div>        <h4>Name</h4>         <p>Name</p>       </div>     </li>     <li>       <div>         <h4>Téléphone</h4>         <p>0466303737</p>       </div>     </li>   </ul> </div></body></html>

PS: Ich lebe in Frankreich, dh Telefonnummer => 10 Ziffern

War es hilfreich?

Lösung

Das Parsen von Telefonnummer ist Magie, und ich fürchte, nur Apple Magicians haben die Kräfte, Ihnen zu sagen, wie es ihnen geht. Und es ist möglich, dass es von vielen Faktoren wie iOS -Version, Benutzergebiet und Wetter abhängt.

Da Sie sich in einer UIWebview befinden, denke ich, dass Ihr HTML nur iPhone ist. Warum dann keine spezifischen iPhone -Telefonlinks erstellen, anstatt sich darauf zu verlassen Magie Sachen? :):

<a href="tel:+1-800-275-2273">
Call John Appleseed at 1-800-275-2273
</a>.

Sie könnten sogar ein JavaScript in HTML mit Ihrer eigenen Telefonnummer -Erkennung/-formatalgorithmus einbringen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top