【问题标题】:React Native in-app browser appReact Native 应用内浏览器应用
【发布时间】:2016-11-22 16:22:21
【问题描述】:
我是 React Native 的新手,我需要您的建议。我正在构建一个 React Native 应用内浏览器应用程序来限制浏览器访问页面,而不是一旦他们被授予访问权限。我有使用 React Native 提供的 Linking 和 Webview 的计划。另外,我想以一种用户在没有密码的情况下无法关闭应用程序的方式来实现它。谢谢。
【问题讨论】:
标签:
android
ios
react-native
【解决方案1】:
对于 iOS,你有 onShouldStartLoadWithRequest 方法,它可以让你决定哪些请求应该被允许,哪些不应该。已尝试将此功能移植到 Android PR,但似乎不太可能很快将其移植到发布版本。然而,这里有两个解决方案: 在您的 state 中设置当前 URL。然后订阅onLoadStart 方法并在那里检查新的URL。如果确实满足你的需求,将其设置为state,有效地继续渲染(如果你不小心,可能会陷入无限循环,如果URL与状态相同,则什么都不做)。否则,将新 URL 替换为旧 URL,或致电 goBack()。第二种选择是实现一个自定义 WebView,它扩展了 React Native 的一个并实现了这个功能。请参阅this answer 以获取参考,this component 以查看自定义 WebView 的实现参考。