设为首页收藏本站

react native【免费】VIP视频教程 rn开发者交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 247|回复: 3

[其他问题] RN 中如何用下载到本地的js内的方法来操作内容?

[复制链接]

2

主题

99

帖子

248

积分

RN高级VIP

Rank: 9Rank: 9Rank: 9

积分
248
发表于 2016-11-11 23:26:52 | 显示全部楼层 |阅读模式
本帖最后由 ycg520520 于 2016-11-11 23:30 编辑
  1. // 外部服务器存提供的a.js、b.js、c.js等等
  2. function aFn1(html){
  3.         // 这里可对html进行操作
  4.   console.log('aFn1',html)
  5. }
  6. function aFn2(html){
  7.         // 这里可对html进行操作
  8.   console.log('aFn2',html)
  9. }

复制代码

  1. // RN 组件内容代码片段
  2. // 从网络获取到的html文件片段
  3. const getWebHTML = `<!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6.         <meta charset="UTF-8">
  7.         <title>需要解析的html文档内容</title>
  8. </head>
  9. <body>
  10.         <img src="image_01.jpg" alt="" />       
  11.         <img src="image_02.jpg" alt="" />       
  12. </body>
  13. </html>`
  14. // 第一步从服务器抓取js提取html文件内容的js
  15. fetch('http://www.domain.com/jsSpiderHtml/a.js')
  16. .then((res) => res.text())
  17. .then((data) => {
  18.         // 第二步将获取到的数据写入到     
  19.   fs.writeFile('/data/user/0/com.spiderWebConAPP/files/a.js', data, 'utf8')
  20.   .then(() => {
  21.     console.log('存储JS成功!')
  22.   })
  23.   .catch((err) => {
  24.     console.log('存储JS本地文件出错:', err)
  25.   })
  26. })
  27. .catch(err=>{
  28.   console.log('请检查网络是否正常', err)
  29. })

  30. // 第三步:读取到本地的文件: /data/user/0/com.reptileWebConAPP/files/a.js
  31. // 这文件是通过第一步下载到app上存储的文件
  32. fs.readFile('/data/user/0/com.spiderWebConAPP/files/a.js', 'utf8')
  33.   .then((data) => {
  34.           //能读取到a.js文件内容,
  35.     console.log('readFile', data)
  36.     // 这里操作用读取到的
  37.     data.aFn2(getWebHTML)
  38.   })
  39.   .catch(err=>{
  40.           // 如果出现错误再次执行第一步操作读取服务器文件来存储
  41.   })

复制代码


回复

使用道具 举报

2

主题

99

帖子

248

积分

RN高级VIP

Rank: 9Rank: 9Rank: 9

积分
248
 楼主| 发表于 2016-11-15 14:25:48 | 显示全部楼层
  1. // RN 组件内容代码片段
  2. // 从网络获取到的html文件片段
  3. const getWebHTML = `<!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6.         <meta charset="UTF-8">
  7.         <title>需要解析的html文档内容</title>
  8. </head>
  9. <body>
  10.         <img src="image_01.jpg" alt="" />        
  11.         <img src="image_02.jpg" alt="" />        
  12. </body>
  13. </html>`
  14. // 第一步从服务器抓取js提取html文件内容的js
  15. fetch('http://www.domain.com/jsSpiderHtml/a.js')
  16. .then((res) => res.text())
  17. .then((data) => {
  18.         // 第二步将获取到的数据写入到     
  19.   fs.writeFile('/data/user/0/com.spiderWebConAPP/files/a.js', data, 'utf8')
  20.   .then(() => {
  21.     console.log('存储JS成功!')
  22.   })
  23.   .catch((err) => {
  24.     console.log('存储JS本地文件出错:', err)
  25.   })
  26. })
  27. .catch(err=>{
  28.   console.log('请检查网络是否正常', err)
  29. })

  30. // 第三步:读取到本地的文件: /data/user/0/com.reptileWebConAPP/files/a.js
  31. // 这文件是通过第一步下载到app上存储的文件
  32. fs.readFile('/data/user/0/com.spiderWebConAPP/files/a.js', 'utf8')
  33.   .then((data) => {
  34.           //能读取到a.js文件内容,
  35.     console.log('readFile', data)
  36.     // 解决办法很简单直接用js的eval更能,不能用new Function的功能,区别在于function的传参上只能接受单个字符串
  37.     // 这里操作用读取到的
  38.     eval(data)
  39.     data.aFn2(getWebHTML)
  40.   })
  41.   .catch(err=>{
  42.           // 如果出现错误再次执行第一步操作读取服务器文件来存储
  43.   })

复制代码
回复 支持 反对

使用道具 举报

4

主题

1461

帖子

3022

积分

RN高级VIP

Rank: 9Rank: 9Rank: 9

积分
3022
发表于 2017-10-10 00:38:04 | 显示全部楼层
fadfadasdfas回复dfasdfa
回复 支持 反对

使用道具 举报

4

主题

1461

帖子

3022

积分

RN高级VIP

Rank: 9Rank: 9Rank: 9

积分
3022
发表于 2017-12-15 14:11:35 | 显示全部楼层
回复回复回复回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|ReactNative Inc.    

GMT+8, 2018-4-20 08:53 , Processed in 0.176277 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表