2017-04-20 4 views
0

Je veux utiliser WebView pour afficher un contenu HTMLReact Native: comment utiliser require (path) avec des URL dynamiques?

voici un exemple:

return (
      <WebView 
        style={styles.container} 
        source={source} 
        scalesPageToFit={Boolean(true)} 
        onNavigationStateChange={this._onNavigationStateChange} /> 
    ) 

et pour la variable source deje dois avoir deux valeurs différentes:

1) plate-forme android je dois utiliser quelque chose comme ceci:

source = {uri: `file:///android_asset/contents/${languageId}text.html`} 

2) pour ios je dois utiliser s Mth. comme ceci:

source = require(`../srv/localization/contents/${languageId}text.html`) 

Pour android cela fonctionne bien, mais pour ios cela ne fonctionne pas. Et cette URL fonctionne bien pour iOS aussi

require(`../srv/localization/contents/entext.html`) 

Si je comprends bien c'est à cause de l'URL dynamique ($ {} languageId de text.html)

La question est de savoir comment utiliser les urls dynamiques pour iOS?

Répondre

3

Comme vous le savez, vous ne pouvez pas avoir dynamique url pour besoin. C'est parce que besoin obtenir la source au début de l'application, peu importe sa place dans le code. Vous shuld besoin de tous les {} languageId text.html et passez la variable nécessaire à la source:

var language = { 
    en: require(`../srv/localization/contents/entext.html`) 
    ... 
} 

et l'utiliser comme ci-dessous:

source = require(language[en]) 
+0

s'il vous plaît lire post-scriptum @Meysam Izadmehr – Dmitry

+0

@Dmitry, j'ai édité la réponse pour l'utilisation avec * var *. t –

+0

Bonne solution !!! – Dmitry