0

在我的 expo / react 应用程序中,我有一些来自网站的 HTML,这些 HTML 来自我从 api 中提取的。我想使用该 html 中的链接来链接到应用程序中的页面。一些示例html...

responseHtml = "<p>this is a paragraph <a href="http://example.com/some-page">Some Page</a><p>"

然后我想我会做一些字符串替换,以便 html 最终看起来像这样......

responseHtml = "<p>this is a paragraph <a href="exp://something/Article/some-page">Some Page</a><p>"

然后我会在我的应用程序中呈现内容,如果我做了这样的事情,链接就会起作用......

<HTML onLinkPress={(event, href)=>{Linking.openURL(href)}} html="{responseHtml}" />

我似乎找不到正确的 href 值来成功点击应用程序内的页面。我尝试使用完整路径,exp://127.0.0.1:19200/Article/some-page我尝试过相对链接,例如/Article/some-page,我尝试在 app.json 中将模式值设置为“myapp”并使用链接到它myapp://Article/some-page

4

1 回答 1

-1

您是否尝试过解析它?我会使用react-native-htmlview库。在那里您可以自定义链接处理程序。因此,您可以打开链接或将其作为道具传递。您的代码可能如下所示:

import React from 'react';
import HTMLView from 'react-native-htmlview';

class App extends React.Component {
  render() {
    const responseHTML = ``;

    return (
      <HTMLView
        value={htmlContent}
        stylesheet={{
         fontWeight: '300',
         color: '#FF3366', // make links coloured pink
        }}
      />
    );
  }
}

如果您想对链接执行任何自定义操作,它可能如下所示:

return (
  <HTMLView
    value={this.props.putyourhtmlhere}
    onLinkPress={(url) => console.log('clicked link: ', url)}
  />
);

希望有帮助

于 2019-11-12T08:56:38.300 回答