小编gee*_*vee的帖子

将移动浏览器深层链接到本机应用程序 - 未安装应用程序时Chrome的问题

我有一个网页,我们可以打电话给它entry.html.

当用户进入此页面时,javascript代码(见下文)正在尝试将用户深层链接到本机iOS/Android应用程序.

如果深层链接失败(可能是因为设备上没有安装应用程序),用户应该"退回"到另一个页面 - 让我们调用它fallback.html.

这是运行的javascript代码entry.html:

$(function(){
    window.location = 'myapp://';
    setTimeout(function(){
        window.location = 'fallback.html';
    }, 500);
});
Run Code Online (Sandbox Code Playgroud)

这是一种标准的深层链接方法,建议在整个网络中使用; 尝试深层链接,如果超时触发它意味着深层链接没有发生 - 所以回退.

这很好用,因为设备上安装了很长的应用程序.

但是如果没有安装应用程序,这是尝试深层链接时的行为:

移动Safari:我看到一条警告消息说"Safari无法打开此页面......"片刻,然后它正确地回落fallback.html- 这是预期的行为.

移动Chrome是我的问题.

当没有安装应用程序时,浏览器实际上被重定向到myapp://网址,这当然是无效的 - 所以我得到一个"未找到"页面,并且不会发生回退.

最后 - 我的问题是:

如何修复我的代码,以便FALL-BACK也会在移动Chrome上发布?就像移动Safari一样?

注意:我看到LinkedIn移动网站正确地使用Safari和Chrome,无论是否安装了应用程序,但我无法追踪负责它的代码:(

注意2:我尝试添加一个iframe而不是window.location = url,这只适用于Safari,即使安装了应用程序,移动Chrome也不会在追加iFrame时进行深层链接.

谢谢大家!


更新:

我找到了一个不错的解决方案,并回答了我自己的问题 看到我的解决方案的已接受答案

javascript deep-linking mobile-website mobile-chrome

24
推荐指数
2
解决办法
3万
查看次数

ASP.NET C#中的自定义控件

我创建了一个简单的自定义控件,它只从Literal控件继承,并且还没有任何扩展,代码是空的.

命名空间:CustomControls

类名:Literal:System.Web.UI.WebControls.Literal

我接下来要做的是在aspx页面中注册此控件,如下所示:

<%@ Register TagPrefix="web" Namespace="CustomControls" %>
Run Code Online (Sandbox Code Playgroud)

(我在一些教程中读到这是注册它的方法之一,除了web.config等)

毕竟,对我来说没有任何意义,更糟糕的是 - 当我尝试运行带有控件的页面时,我得到一个解析错误'未知服务器标签:web'.

我使用'创建新项目'而不是新网站,以防需要此信息.

可能是我的问题?

提前致谢.

asp.net custom-controls parse-error extending-classes

10
推荐指数
1
解决办法
1万
查看次数

Safari:无法从 blob url 动态加载视频

我正在尝试为 html5 视频标签实现动态加载。

当用户通过<input type="file">元素选择视频文件时,我想将其动态加载到<video>元素,并将其附加到正文。

以下代码适用于 Chrome,但不适用于 Safari:

function load_video(file) { // this came from <input type="file"> change event
    var reader = new FileReader();
    reader.onload = function(event) {
        var blob = new Blob([event.target.result]);
        window.URL = window.URL || window.webkitURL;
        var blobURL = window.URL.createObjectURL(blob);
        $('body').append('<video controls width="320" src="' + blobURL + '" onloadedmetadata="alert('loaded meta data!')"></video>');
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我将替换src="' + blobURL + '"为本地文件路径,例如/media/videos/vid1.mp4,视频也会在 Safari 中加载,但我需要它从blobURL.

有什么建议?

多谢。

更新:

正如 Rod 所说,不幸的是,这是 Safari 中的一个已知错误(不受其媒体后端支持)。

javascript blob html5-video

6
推荐指数
2
解决办法
9276
查看次数

当页面用鼠标悬停在元素上时,jQuery触发鼠标悬停功能

我有一个ASP.NET文档,其中包含一个Image元素.
mouseover在这个图像元素上创建了一个函数,它工作正常.
问题是:
如果文档加载自身时鼠标在元素上是ALREADY,则该mouseover函数不会触发(我需要mouseout然后mouseover再触发它).如果鼠标已经在这个元素的顶部,
有没有办法检查$(document).ready函数?如果是 - 触发mouseover功能.
谢谢大家!

asp.net jquery mouseover pageload

5
推荐指数
0
解决办法
1837
查看次数

ASP.NET C#使用System.IO将SubDirectories复制到目录

我需要将整个目录C:\ X复制到C:\ Y\X,我还需要复制子文件夹.
是否有任何方法可以使用System.IO.File\Directory命名空间?
谢谢所有帮手!

.net c# asp.net copy subdirectory

4
推荐指数
1
解决办法
1万
查看次数

Javascript正则表达式仅适用于英文和数字字符

检查表达式是仅包含英文字符还是数字字符的最简单方法是什么?没有空格,没有其他字符.

ps - 第一个字符不能是数字.大写或小写.

javascript regex

2
推荐指数
2
解决办法
2万
查看次数

使用javascript计算两个数组之间的相似度

在过去的 4 个小时里,我一直被一段 javascript 困住了!

问题是如何计算两个数组之间的相似度,如下所示:

arrayA = [a,b,c,d,e,f,g];
arrayB = [c,d,e];
Run Code Online (Sandbox Code Playgroud)

答案应该是三个。我目前唯一的一段代码会产生无限循环:(

请帮忙

javascript arrays count

2
推荐指数
1
解决办法
3964
查看次数

如何根据内部文本(英文/阿拉伯文)设置正确的元素css方向(ltr/rtl)?

我想在按钮点击时左右对齐阿拉伯语的文本和反向英语.我可以通过动态更改英语和阿拉伯语的每个文本对齐来完成此操作,这是一个漫长的过程.

因此,任何机构都可以提供简短的做法.任何建议真的很感激.

html asp.net

2
推荐指数
1
解决办法
3637
查看次数

ASP.NET Forms Authentication在localhost服务器中进行身份验证,但在Web服务器上进行身份验证

我一直Forms Authentication在用C#(v3.5)实现ASP.NET.

当用户的电子邮件和密码存储在我的SQL数据库中时,我创建了一个简单的登录表单.

当我登录本地主机时,一切正常,但是当我发布项目并将其上传到我的生产Web服务器时,事情对我来说有点奇怪.

HttpContentxt.Current.User.Identity.IsAuthenticated变量返回false,即使登录为全成(并再次,在本地主机一切正常).

这是以下登录按钮点击代码(我使用自己的DataAccess,忽略它的无关代码):

    protected void btnLogin_Click(object sender, EventArgs e)
    {
        Page.Validate("Login");
        if (Page.IsValid)
        {
            string email = txtEmail.Text;
            string passwd = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text, "MD5");
            WebFactory.DataAccess.Users.Data userData = new WebFactory.DataAccess.Users.Data(ConnectionString);
            userData.Load(new WebFactory.DataAccess.Users.Item[] {
                new WebFactory.DataAccess.Users.Item(WebFactory.DataAccess.Users.Columns.Email, email),
                new WebFactory.DataAccess.Users.Item(WebFactory.DataAccess.Users.Columns.Password, passwd)
            });
            if (userData.HasData) // Login Success
            {
                if (!cbRememberMe.Checked)
                {
                    FormsAuthentication.SetAuthCookie(userData.Id.ToString(), false);
                }
                else
                {
                    FormsAuthentication.Initialize();
                    DateTime expires = DateTime.Now.AddDays(20);
                    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
                        userData.Id.ToString(),
                        DateTime.Now,
                        expires,
                        true,
                        String.Empty,
                        FormsAuthentication.FormsCookiePath);

                    string encryptedTicket = FormsAuthentication.Encrypt(ticket);
                    HttpCookie …
Run Code Online (Sandbox Code Playgroud)

c# asp.net forms-authentication

0
推荐指数
1
解决办法
2552
查看次数