Question

J'ai un UIWebView dans lequel je veux les numéros de téléphone à détecter.

Mon problème est que dans un seul UIWebView, certains numéros de téléphone sont détectés et cliquable, mais d'autres ne sont pas et je ne sais pas pourquoi.

Voici un extrait de mon code 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>

Les 3 premiers chiffres sur les 2 premières lignes sont détectées, mais l'une à l'intérieur de l'élément

(ligne 14) est pas.

Quelqu'un sait pourquoi? Est-il quelque chose à faire à ce sujet?

EDIT: comme demandé dans les commentaires, voici le code HTML complet:

<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: Je vis en France par exemple le numéro de téléphone => 10 chiffres

Était-ce utile?

La solution

analyse syntaxique du numéro de téléphone est magique, et je crains que les magiciens d'Apple ont le pouvoir de vous dire comment ils le font. Et il est possible que cela dépend de nombreux facteurs comme la version iOS, paramètres régionaux utilisateur, le temps.

Puisque vous êtes dans un UIWebView je suppose que votre HTML est iPhone uniquement. Alors pourquoi ne pas créer des liens de téléphone iPhone de spécifiques, au lieu de compter sur magic trucs? :):

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

Vous pouvez même injecter un peu de javascript en html avec votre propre algorithme de détection / format numéro de téléphone en cas de besoin ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top