【问题标题】:How to link to a "pinned to homescreen" webapp on iOs?如何链接到 iO 上的“固定到主屏幕”网络应用程序?
【发布时间】:2016-06-20 11:57:20
【问题描述】:

我正在开发一个 SinglePageApplication (JS+HTML) 项目。 网络应用程序固定在 iPhone 的主屏幕上。 此应用程序调用名为“pic2shop”的本机应用程序来扫描带有注册自定义方案的条形码,如下所示:

window.uri=pic2shop://scan?callback=localhost:20001%3Feancode%3DEAN

“pic2shop”完成后,它会调用回调参数提供的 uri。 没关系!

问题是,通过调用提供的 uri,会弹出一个新的 safari 实例并打开该 uri。我想看到的是,我的 webapp 已经运行的实例被重用了。有任何想法吗?有可能吗?

【问题讨论】:

    标签: javascript ios web-applications iphone-standalone-web-app


    【解决方案1】:

    是的,您可以使用“Safari 视图控制器”。 这是一个很好的例子:

    https://library.launchkit.io/how-ios-9-s-safari-view-controller-could-completely-change-your-app-s-onboarding-experience-2bcf2305137f#.r1ac0b5c2

    编辑

    如果您希望使用 webView 上下文打开您的应用,您可以在 sheme 上发送参数:

    //myScheme://params=1&param2=openWebView
    

    您将接到电话:

     -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)ur
    

    然后检查参数,如果需要打开webView:

    NSString *query = [url query];
    NSArray *queryComponents = [query componentsSeparatedByString:@"&"];
    param1=value
    NSArray *firstParam = [[queryComponents objectAtIndex:0] componentsSeparatedByString:@"="];
    [firstParam objectAtIndex:0] 
    [firstParam objectAtIndex:1] 
    

    【讨论】:

    • 对不起,我的问题不是很清楚。第 3 方应用程序调用一个 URI,我希望该 URI 打开我固定的 web 应用程序。在这种情况下,Safari Web Controller 会有所帮助吗?
    • 所以用户是在第 3 个应用程序的上下文中?所以你想让你的应用用 webView 打开?所以你正在寻找在方案上传递参数?
    • 流程是这样的: 1. 用户在我的 webapp 上(纯 HTML+JS 固定到主屏幕)并按下按钮。 2. 点击事件调用自定义方案启动原生应用。 3. 本机应用程序应该回调我的 webapp。它通过打开一个常规 URI (http://..../myCallback) 来打开 Safari,但我希望它从 1 打开我正在运行的实例。
    • 好的,我想我现在明白你的意思了。因此,您的应用程序在幕后是 HTML+JS 并不重要。它仍然充当一个真正的应用程序,一个混合移动应用程序。所以你也可以使用方案,你应该注册一个可以打开你的应用程序的方案,就像你调用一个方案来打开本机应用程序一样。你用的是女巫框架吗?
    • 嗯,它不是一个混合应用程序。我没有任何原生 iOS 代码,它只是 HTML+JS。
    猜你喜欢
    • 2015-12-10
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多