更新:看起来这只是Safari iOS上的特定错误.网站作为网络应用程序加载(保存在家中)不会显示相同的差距/缓冲区.你应该只能解决这个问题.
JSBIN - 在移动safari上查看它与其他浏览器.
实时输出:http://output.jsbin.com/winuta/
JSBin:http://jsbin.com/winuta/edit?html,js,output
原帖
这是DIV中文本区域的一个非常基本的精简版本,具有固定到底部.
我正在使用Flat Bootstrap Admin V3模板,由于许多消息传递部分都是错误的,因此必须对其进行长时间的调试.
我的页面在所有浏览器上都能正确显示,但Mobile Safari会在我的文本字段为焦点时在键盘和正文之间创建缓冲区/间隙.
我设法解决了大部分的bug,但是当涉及到移动时,我在iOS Safari上遇到了这个问题,当我专注于文本区域时,它会在网页下创建额外的缓冲区(我在100VH时使用body max-height - Buggy我知道,但我已经使用JS和$(window).innerHeight()解决了这个问题,无论我怎么做都很好.
我尝试使用JS调整所有不同的div高度,包括身高到减去另外60px,它仍然留下了差距.所有其他浏览器都会粘在键盘上方,而不是iOS Safari.
任何人都可以解雇一些?
文本区号
<div class="footer">
<div class="message-box">
<textarea id="draftmsg" placeholder="type something..." class="form-control"></textarea>
<button id="sendmsg" class="btn btn-default"><i class="fa fa-paper-plane" aria-hidden="true"></i><span>Send</span></button>
</div>
Run Code Online (Sandbox Code Playgroud)
这个模板主要基于flex,但对于我使用的页脚
.footer {
position: relative; /*Relative to the text display area which occupies whole viewport minus footer*/
bottom: 0;
}
Run Code Online (Sandbox Code Playgroud)
上图显示了没有键盘时它应该如何正常显示,用户无法滚动文本区域,因为文本区域粘到底部.
但图像显示了移动旅行中键盘和文本区域之间的差距
上图显示其他移动浏览器Chrome和Firefox显示正常,没有额外的缓冲区.
更新(评论问题的答案)
我的元标题已经设置如下 …
我已经使用 expo 一段时间了,并且在没有 expo 的情况下切换到 react-native-init。
我在没有 expo 的情况下工作很舒服(感谢 Github),但不知何故,我无法通过大量谷歌搜索找到一个解决方案,用于与 Expo 中的 AppLoading 类似的功能(https://docs.expo.io/versions/latest/sdk /应用程序加载)。也许我没有使用正确的关键字,我不断得到反应原生快速图像等的结果,这些结果只是从缓存中预加载图像。
我已经在 Xcode 中设置了启动屏幕,我想在启动屏幕切换到我的第一个屏幕之前进行网络请求,将一些数据加载到我的 redux 存储中,预加载图像和一些字体。
有人可以为我提供解决方案或解决方案的链接吗?
更新为Bounty
我目前在我的iframe中使用src ="url"来加载对我来说不是最佳的ReactApp,因为这将允许用户右键单击并"在新窗口中打开".
我正在寻找的最佳解决方案是将我的bundle.js与一个或类似的解决方案一起写入iframe.src将保持为空白,因此用户无法在新窗口/选项卡中右键单击以打开.
我正在探索如何使用React制作一个可嵌入的小部件,所以我到目前为止从google搜索到了以下内容.但是,我不渲染,并返回以下消息.
错误消息 [错误]不变违规:目标容器不是DOM元素.
我使用create-react-app为我的嵌入式应用程序,我只有2个简单的文件.
index.js
import React from 'react';
import ReactDom from 'react-dom';
import App from './App';
ReactDom.render(
<App />, document.getElementById('root')
)
Run Code Online (Sandbox Code Playgroud)
App.js
import React, { Component } from 'react';
class App extends Component {
render() {
return (
<div>This is an embedable widget</div>
)
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
我创建了一个test.js,它将在远程iframe中使用下面的简单代码调用以生成html,包含js包,以及包含id的div.
这是test.js
//Creates Div
var d = document.createElement("div");
document.body.appendChild(d);
//Creates iFrame
var n = document.createElement("iframe");
n.id = "microcom-frame";
n.style.width = "100%";
n.style.height = "100%";
n.style.background = …
Run Code Online (Sandbox Code Playgroud) 我已经使用以下代码实现了启用动画的 tabnavigator(为了便于阅读,省略了图标代码)。
正如您在导航中看到的那样,当我单击每个选项卡(例如,第一个选项卡,然后是第 5 个选项卡)时,中间的图标都更改了颜色。有没有办法在启用动画的同时“跳”到选项卡?
const FirstStack = createTabNavigator(
{
Home: { screen: Home },
List: { screen: List },
Check: { screen: Check },
Open: { screen: Open },
Settings: { screen: Settings }
},
{
tabBarOptions: {
activeTintColor: "#00af9d",
inactiveTintColor: "grey",
style: {
backgroundColor: "white",
paddingTop: 10
},
showLabel: false
},
animationEnabled: true
}
)
Run Code Online (Sandbox Code Playgroud)
\xe2\x9c\x85 我可以让用户使用手机号码更新他们的个人资料verifyPhoneNumber
并更新currentUser.updatePhoneNumber
\xe2\x9d\x8c 当我允许通过电话登录和新用户时出现问题尝试使用电话号码登录时,我的问题出现了,会自动创建一个帐户。
\n如果我需要将该号码与电子邮件帐户关联,则上述方法将返回credential-already-in-use
错误。
Firebase 在其文档中推荐以下方法。
\nvar credential = firebase.auth.PhoneAuthProvider.credential(confirmationResult.verificationId, code);\n\nfirebase.auth().signInWithCredential(credential);\n
Run Code Online (Sandbox Code Playgroud)\n所以我一起做了这个linkWithCredential
,但是,signInWithCredential返回一个结果result.credential = null
// Sign in user with the account you want to link to\nauth.signInWithCredential(credential).then(function(result) {\n console.log("Sign In Success", result);\n var currentUser = result.user;\n\n return prevUser.linkWithCredential(result.credential) //this line doesn\'t work.\n .then(function(linkResult) {\n\n return auth.signInWithCredential(linkResult.credential);\n })\n}).catch(function(error) {\n\n console.log("Sign In Error", error);\n\n});\n
Run Code Online (Sandbox Code Playgroud)\n由于 result.credential = null,我无法继续使用 LinkWithCredential。
\n我也尝试过 …
赏金注意:我已经使用add_rewrite_rules找到了我的问题解决方案.我将奖励那些能够以apache RewriteRules格式为我提供相同解决方案的人.
我已经阅读了如何使用.htaccess创建友好的URL?但它仍然很困难,也很复杂.
我正在运行WordPress Multisite,我有一个子域名网站cp.example.com,我正在这个子域名上编写一个php应用程序.
我有一个网址如下:
http://cp.example.com/sales.php?id=12345&userid=123456&uid=83hkuhdqhuhd873xsuhdqwiuhdiq
Run Code Online (Sandbox Code Playgroud)
我可以通过以下方式让用户访问网站:
http://cp.example.com/sales/12345/userid/123456/83hkuhdqhuhd873xsuhdqwiuhdiq
Run Code Online (Sandbox Code Playgroud)
如果我这样做,php仍然能够对$_GET
值进行操作吗?
例如$_GET['id']
,$_GET['userid']
和$_GET['uid']
?
我正在使用WordPress作为我的基础,但我正在编写应用程序端,使用不同的表.
我试图避免使用自定义帖子类型只是为了实现上述目的.
我尝试了以下内容.
在view_sales.php中创建一个模板文件view_sales.php我将要求$_GET['id']
,$_GET['userid']
并$_GET['uid']
从mysql中检索信息.
在view_sales.php
我也使用了不同的头文件并且有get_header('sales')
;
在header-sales.php中,我添加了以下来自上面的堆栈溢出页面的代码.
$path_components = explode('/', $_GET['url']);
$id=$path_components[0];
$userid=$path_components[1];
$uid=$path_components[2];
Run Code Online (Sandbox Code Playgroud)我创建了一个带有slug销售的新wp页面,所以现在该网站是 http://cp.example.com/sales/?id=123456&userid=123456&token=98917397219372iheu1i
我.htacess
在我的/public_html/example.com
域中只有一个网站,因为它是一个多站点,所以我将上面建议的代码添加到我的.htaccess
现在它看起来像这样.
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule …
Run Code Online (Sandbox Code Playgroud)最终更新目标网站似乎阻止了 DO IP,并给出了我几天来一直在解决的问题。我旋转了一个 EC2 实例并设法使代码与缓存等一起工作,以减少网站上的点击并允许我的用户共享网站。
-
更新:我设法通过将curl错误设置为关闭来获取Html,但是除了返回405错误之外,网站也没有设置加载网站内容所需的一些cookie。
curl_setopt($ch, CURLOPT_FAILONERROR, FALSE);
我正在使用 ajax->PHP 的以下代码来检索网站的 og: meta 。但是,有 1 或 2 个特定站点返回错误并且不会检索信息。有以下错误。该代码可以在大多数网站上无缝运行。
警告:DOMDocument::loadHTML():第58行 /my/home/path/getUrlMeta.php中的输入为空字符串
来自我的 error_log 中的curl_error
请求的 URL 返回错误:405 不允许
和
无法连接到 www.something.com 端口 443:连接被拒绝
当我在服务器控制台上使用curl时,获取网站的html没有问题,并且使用下面的代码检索大多数网站所需的信息也没有问题
function file_get_contents_curl($url)
{
$ch = curl_init();
$header[0] = "Accept: text/html, text/xml,application/xml,application/xhtml+xml,";
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: no-cache"; …
Run Code Online (Sandbox Code Playgroud) 我有 TextInput 组件,每当用户键入时它都会更改状态,但我意识到由于 TextInput 的值使用 this.state.text 作为值,双击空格不会在 iO 上产生句点。
是否有解决办法,以便双击空间仍然可以在 ios 上产生句点?
onChange =(text) => {
this.setState({text});
}
<TextInput
onChangeText={this.onChange}
onSubmitEditing={this.onSubmit}
value={this.state.text}
autoCapitalize="sentences"
blurOnSubmit={false}
editable={true}
/>
Run Code Online (Sandbox Code Playgroud) 在我的项目中,我使用了 TypeScript、React 和 ESlint 等技术。
问题是 eslint 对于 svg 文件总是会出现错误
“任何值的不安全分配。(eslint@typescript-eslint/no-unsafe-assignment)”。
在我的 src 文件夹的根目录中,我有 custom.d.ts ,其中声明了 svg 模块:
// declare module "*.svg";
declare module "*.svg" {
import * as React from "react";
export const ReactComponent: React.FunctionComponent<
React.SVGProps<SVGSVGElement> & { title?: string }
>;
const src: string;
export default src;
}
Run Code Online (Sandbox Code Playgroud)
尝试了两种声明,其中一种声明是从 create-react-app 中获取的,另一种声明是评论的。
我在项目中使用 SVG 的方式:
import Logo from "images/logo.svg";
<Link to={PATH.ROOT} className={styles.logo}>
<img src={Logo} alt="Logo" className={styles.icon} />
<span className={styles.title}>Ascension Wiki</span>
</Link>
Run Code Online (Sandbox Code Playgroud)
为了消除错误,我可以使用类型转换,例如:
<img src={Logo as string} alt="Logo" className={styles.icon} /> …
Run Code Online (Sandbox Code Playgroud) React 安装正确,其他一切正常,除了当我尝试在终端中运行“npm start”时,它给了我以下错误。
这是我的 package.json 代码:
{
"name": "r3-ui",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.6",
"@testing-library/react": "^11.2.2",
"@testing-library/user-event": "^12.2.2",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-scripts": "4.0.1",
"web-vitals": "^0.2.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
} …
Run Code Online (Sandbox Code Playgroud) reactjs ×6
javascript ×3
react-native ×3
php ×2
.htaccess ×1
css ×1
curl ×1
eslint ×1
firebase ×1
jquery ×1
mod-rewrite ×1
npm-start ×1
security ×1
svg ×1
textinput ×1
typescript ×1
webpack ×1
widget ×1
wordpress ×1