相关疑难解决方法(0)

URI,URL和URN有什么区别?

人们谈论URL,URIURN就好像它们是不同的东西,但它们看起来与肉眼相同.

它们之间有什么区别?

url uri http rfc3986 urn

4217
推荐指数
28
解决办法
111万
查看次数

如何从Web应用程序打开本机iOS应用程序

总结我有一个具有正确功能的URL方案的应用程序,我想从主屏幕上存储的Web应用程序启动,而普通的JavaScript重定向方法似乎不起作用.

详细信息我正在尝试创建一个iOS网络应用程序,从主屏幕上保存的链接以全屏模式打开.Web应用程序需要打开特定的本机应用程序.我已经为本机应用程序注册了url方案,并验证它是否正常工作 - 例如,我可以通过直接在我的Safari地址栏中键入方案来打开本机应用程序.我也可以使用+openURL:方法从其他应用程序打开它UIApplication.我还想用可以添加到主屏幕的本机Web应用程序中的某些参数打开它.

我想要做的是在本机应用程序中使用这样的JavaScript:

window.location = "myapp://myparam";
Run Code Online (Sandbox Code Playgroud)

在Web应用程序中使用此代码时,我会收到一条提示:

"无法打开myWebAppName - 无法打开myWebAppName.错误是"此URL无法显示"."

在Safari中执行时,这个相同的JavaScript工作正常.我得到了相同的结果window.location.replace("myapp://myparam").

Web应用程序的html是:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>untitled</title>
    <meta name="generator" content="TextMate http://macromates.com/">
    <meta name="author" content="Carl Veazey">
    <!-- Date: 2012-04-19 -->
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta names="apple-mobile-web-app-status-bar-style" content="black-translucent" />
</head>
<body>
    <script type="text/javascript" charset="utf-8">
        if (window.navigator.userAgent.indexOf('iPhone') != -1) {
            if (window.navigator.standalone == true) {
                window.location …
Run Code Online (Sandbox Code Playgroud)

javascript mobile-safari ios

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

适用于IOS和Android应用程序的Deeplink解决方案适用于Facebook

有太多深层链接(通用链接或应用链接)教程.但其中大多数都展示了如何在Android或IOS应用中启用它.此外还有付费云解决方案,但它们提供了许多功能.但是我在现实生活中面临三个主要问题:

  1. 某些浏览器不允许App Links工作.例如,您可以将http://example.com配置为在应用程序中捕获,但如果用户通过Facebook应用程序单击此链接则不会处理,并且Facebook浏览器会显示该网站.
  2. 没有独特的标准解决方案来处理Android和IOS应用程序的链接.
  3. 如果应用程序未安装在移动设备上且用户单击App Link,则无法提供实用的解决方案.

我写了这个Q&A,这是我学习的结果(花了太多时间),以便有一个独特的,适用于所有案例的解决方案.

代码来自我的工作解决方案,但我删除了一些部分只是为了表明这个想法.如果存在一些编译问题,请按照算法编写自己的代码

这是解决方案,即使你知道一些步骤也要一步一步,因为代码中有技巧.还有一些解释在代码部分的注释行中,请阅读它们.

示例是使用最终的参数处理Android和IOS应用程序的深层链接http://example.com/v/,例如http://example.com/v/id-of-user?key=value.

1.配置Android

1.1将活动信息添加到AndroidManifest.xml文件中:

<activity
android:name=".appLinkHandlerActivity">

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data
        android:host="example.com"
        android:pathPrefix="/v/"
        android:scheme="http" />
</intent-filter>

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

<!—this intent is needed to handle links to myapp://share, I will explain later why we need it -->
    <data
        android:host="share"
        android:scheme="myapp" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

1.2创建名为appLinkHandlerActivity的活动,该活动将处理单击的链接

    public class appLinkHandlerActivity extends AppCompatActivity {


    /* assume that user is clicked http://example.com/v/my-user-id   
    actCode will be …
Run Code Online (Sandbox Code Playgroud)

facebook deep-linking applinks ios-universal-links deeplink

8
推荐指数
0
解决办法
2120
查看次数