当前位置:99696大富豪棋牌 > 关于我们 > 用户点击一个web链接就能直接跳转到app,你都只

用户点击一个web链接就能直接跳转到app,你都只

文章作者:关于我们 上传时间:2019-10-03

99696大富豪棋牌 1

原文:Android M App Links: implementation, drawbacks and solutions
在上次的I/O大会上,谷歌宣布了Android M 支持app链接(App Links),谷歌正在不遗余力的推动深度链接(deep linking)。这将对Android M的用户体验造成深远的积极影响,用户点击一个web链接就能直接跳转到app。
在Android M之前,点击一个链接会产生一个弹出框,询问用户打开哪个应用 - 包括浏览器应用。但是谷歌在Android M 实现了一个自动认证(auto-verify)机制,让开发者可以避开这个弹出框,使用户不必去选择一个列表,直接跳转到他们的app。

在你自己的设备上运行app

1、IDE下载

    微信web开发者工具,本人是用的windows 10 x64系统,用到以下两个版本的IDE安装工具与一个破解工具包:

    wechat_web_devtools_0.7.0_x64.exe下载地址:点我下载

    wechat_web_devtools_0.9.092100_x64.exe下载地址:

  • 百度:  (密码: iswg)
  • 360:  (提取码:f9ca)

    破解包下载地址(相关文件已按照目录位置存储):

作为一位著名的软件开发者和博客世界的先驱者,戴夫·温纳(Dave Winer)于1997年创办了Scripting News(最早的博客网站之一)。由于他总是与微软、谷歌等大公司隔空对骂,所以在博客世界颇为出名。最近他在博客中谈了自己对于web将死的看法。

99696大富豪棋牌 2

到目前为止,你都只是在模拟器上运行app。在模拟器上运行app非常不错,但是这可能不是你学习iOS开发的目的。你应该会希望你的app在真实的iPhone和iPad上运行。能够在自己的iPhone上运行自己做的app绝对是令人兴奋的,当然,别忘了和你的朋友们分享它。

2、安装步骤

    请严格按照以下步骤进行安装。

“我总是听人说道,web将死,app才是未来。早在1997年3月份时,《连线》就有这种 说法 了,然后在2010年8月又 炒了一遍 。我把这两篇文章的链接添加到了我的博客中,是为了提醒你们,现在你们阅读的网站是一个濒死的媒介。”

在app的manifest中添加 auto-verify(左边)并且在web服务器上添加一个statements JSON 文件(右边)就可以让你的web链接打开一个app。
译者注:statements JSON 文件即一个叫statements.json的文件,后面会提到。
要找到谷歌的App Links文档与理解它需要花点时间(你只能搜索“Android M App Links”关键词才能找到)。这个文档目前只是简要的描述了这个话题,但是我们将帮助你详细了解实现的细节,它的缺陷以及如何使用我们的smart links解决这些问题。HOKO的每个客户端目前都已经支持谷歌的App Link,轻松加愉快。
什么是App Links?
谷歌的App Link让用户在点击一个普通web链接的时候可以打开指定app的指定页面,前提是这个app已经安装并且经过了验证,否则会显示一个打开选项的弹出框。自此,在安卓中打开一个链接的用户体验大大提高,用户可以在链接与app之间快速切换。
比如,点击谷歌关于食谱的移动搜索结果或者一个别人发来的食谱链接会直接导航你到与该链接域名相关的app的食谱页面。

别误会我的意思:在模拟器上开发app是非常必要的。在开发过程中,我花费大量时间用模拟器测试app,仅仅是偶尔会在我的iPhone上进行测试。

2.1 安装wechat_web_devtools_0.7.0_x64

99696大富豪棋牌 3

99696大富豪棋牌 4

    记下安装目录:E:Program FilesTencent微信web开发者工具

99696大富豪棋牌 5

毫无疑问温纳是在讽刺。在他看来,web网站最美妙的就在于:

99696大富豪棋牌 6

模拟器是非常棒的,但是你也需要在真机上调试你的创作,看看效果。有些事情模拟器是办不到的,比如当你需要使用iPhone的加速计的时候,你就必须在真机上测试,而不是坐在那里摇晃你的Mac。

2.2 运行wechat_web_devtools_0.7.0_x64

99696大富豪棋牌 7

    选择“运行 微信web开发者工具 0.7.0”,点击“完成”按钮,弹出以下界面:

99696大富豪棋牌 8

99696大富豪棋牌 9

    请用手机微信进行扫描:

99696大富豪棋牌 10

   在手机上,点击“确认登录”按钮:

99696大富豪棋牌 11

          登录之后窗口进入如下界面:

99696大富豪棋牌 12

    登录成功之后, 退出程序。

Linking。

而点击一条推特的web链接会直接带你到Twitter应用的相关推文页面。
注:用页面形容app的屏貌似也不太准确哈~
web链接可以在任意地方发送,发布,或者打开,因为他们就是普通的链接,而且如果出现了什么错误,则会像平常一样用浏览器打开这个web页面。
实现App Links其实非常简单,但是首先你需要保证满足一些列需求:
有一个注册了的域名

在之前你必须充值付费成为开发者后才能进行真机测试,但是这个规则在Xcode 7发布后就变化了,你只需要一个Apple ID就可以免费进行真机测试,在Xcode 8中真机测试更加简单了。

2.3 安装wechat_web_devtools_0.9.092100_x64

    wechat_web_devtools_0.9.092100_x64进行覆盖安装,也安装到E:Program FilesTencent微信web开发者工具  目录下。

99696大富豪棋牌 13

99696大富豪棋牌 14

    安装之后暂时不要运行程序,要对安装程序进行破解。

没错,就是联系人和人、人和信息间的一个个链接。若把每个安装在iPad或者iPhone上的程序现实化的话,它们应该是一座座笔直高耸的大楼,你们或许会觉得它巨大无比,但是它们无法和外界进行内容交换或者连接,这就太糟糕了!web或许没有app漂亮,但是app若不能与网络世界进行交流,那它想作为web的替代者还太嫩了点。所以现在外界盛传的web将死的说法就和“我有一个奢华的浴缸,所以我根本不需要海洋”这种说法一样愚蠢了。

域名的SSL通道

用USB线把你的iPhone、iPod touch或者iPad和你的Mac链接起来。

2.4 微信web开发者工具破解

    打开目录E:Program FilesTencent微信web开发者工具package.nw  ,下载破解文件,覆盖app目录即可。

  • package.nwappdistcomponentscreatecreatestep.js
  • package.nwappdiststroesprojectStores.js
  • package.nwappdistweappappserviceasdebug.js

    替换这三个文件,即可完成破解。

99696大富豪棋牌 15

“我们花钱让一些人替我们思考,但是很多时候他们说的话只为了讨好有钱人,这些糖衣炮弹会让财阀们认为,野性难驯的web世界已经不再对他们产生威胁,现在用户已经快乐地生活在如迪斯尼梦幻般的app世界中,高度管制,没有一点自由。”

具有上传JSON文件到域名的能力

在Xcode顶部的菜单中选择Window->Devices打开设备窗口。

3、开始使用

    1、首先在e盘下创建一个wxapp目录   

    2、打开桌面“微信web开发者工具”

99696大富豪棋牌 16

    点击“添加项目”,进入“新建项目”界面:

99696大富豪棋牌 17

  • AppID:随便填
  • 项目名称:随便填
  • 本地开发目录:选择一个目录,比如刚才创建目录E:wxapp

99696大富豪棋牌 18

    设置完成,点击“添加项目”按钮,进入如下界面

99696大富豪棋牌 19

   按照这个方法完全破解了,但是有个问题是,他会自动更新,第二次就打不开了

99696大富豪棋牌 20

 

这篇博文得到了许多人的点击和评论,温纳也因此站到了风口浪尖,于是他又在昨天更新了一篇文进一步阐述了他对app的看法。

Android Studio 1.3 Preview (99696大富豪棋牌,download)

是一个这样的菜单(我使用的是iPhone 6):

温纳说道,每当我们点击杂志和报纸的官网上的某篇文章时,我们总得忍受网页会弹出一个窗口,告诉我们可以在官方的app上阅读它们的新鲜资讯。温纳随后尝试着安装了一个阅读纽约时报的Google currents,他觉得看起新闻来巨慢无比。

Gradle 版本 — com.android.tools.build:gradle:1.3.0-beta3

99696大富豪棋牌 21

“别误解我了,这些公司确实应该制作自己的app程序,它们有这种权利。而我也有权利不使用它们,但如果它们强迫我使用app的话(纽约邮报就是这么做的,iPad用户只能通过购买其app程序才能访问和阅读新闻内容),那我就干脆完全放弃它们的新闻好了。”

设置 compileSdkVersion 为 android-MNC

Xcode的设备窗口

就在上周,福雷斯特研究公司CEO乔治·科罗尼发表了一份 演讲 ,他说道,web时代已经结束,app才是我们的未来。正是这篇演讲、谷歌笨重的app和要求我们安装官方app的弹出窗口使得温纳开始思考,而他怎么想都觉得app将替代web成为网络未来的想法令人生厌,事实上,也有很多人赞同温纳的想法,他们也已经受够了app了。

buildToolsVersion — 23.0.0 rc2

左边的设备列表就是你开发中可以使用的。

“一些开发者认为,平板是绝佳的阅读环境,但我不认为iPad是我们的最终选择,它笨重且冰。就像许多电影中描述的那样,终极的电脑体验能够让你产生一种幻觉,你会忘记你是在用iPad阅读,而陷入故事本身。若能做到这种程度,那技术可以说是完美无缺了,iPad的阅读体验也不错,但还差了很多。我在点击一个文章链接的时候,是希望能够了解更多内容的,但这时却突然冒出一个有关app的广告。若我认真的考虑该不该安装它,我就会断了阅读文章的思路;若我屈服与网站并选择安装,那我既没了原则又浪费了时间。最好的办法就是立刻点击后退按钮,不去看这篇文章。所以,在此,我要对所有网站说,我才不会安装你们的什么app程序,所以别再弹出窗口了。”

如果以上要求全都满足,只需按照以下三步就可以让App Links 工作在你的app上。

点击你的设备名选中它。

这些看法温纳自己也说了,只是“In My Humble Opinion”,相信很多人会有不同的看法,欢迎讨论。

  1. 在app中激活App links
    让我们通过告诉安卓系统去验证app与域名之间的关系来激活App Links 吧。从此不再又任何的弹出框,因为我们已经在app中注册了该域名。找到AndroidManifest.xml文件,在处理深度链接路由的activity(第三步将讲解如何创建这样的Activity)中添加android:autoVerify="true"到intent-filter:

如果这是你第一次在Xcode中使用你的设备,设备窗口也许会弹出一个提示,“iPhone is not paired with your computer(iPhone和你的设备不匹配)”。要将Xcode与设备匹配,你需要将设备解锁(iPhone上的Home键)。解锁后,iPhone会弹出一个提醒窗口问你是否信任这台电脑,选择是。

信息来源: Dave Winer的博客

Xcode会刷新这个页面并且允许你使用你的设备用于开发调试。这需要几分钟时间(在Xcode状态栏中可以看到进度条)。如果时间过长的话,就把USB线拔掉,再链接一次试试。

<activity  
  android:name="com.your.app.activity.ParseDeepLinkActivity"
  ...>

  <intent-filter android:autoVerify="true">
    <data android:scheme="http" android:host="yourdomain.com" />
    <data android:scheme="https" android:host="yourdomain.com" />
    ...
  </intent-filter>
</activity>

这时你也许会得到一个报错信息,“An error was encountered while enabling development on this device”,这时你需要把掉USB线,同时重启手机和Xcode,重启完毕后再链接它们。

这个配置告诉安卓去验证一个文件,这个文件地址是https://yourdomain.com/.well-known/statements.json。如果存在这个文件,同时验证成功,那么用户点击该域名之下的链接时,就可以直接到app,弹出框就可以避免。否则app就没有成为默认选项,弹出框就会呈现给用户。下一步,我们将学会如何构建这个文件。

酷吧,这就是链接设备的方法。

  1. 上传web-app关联文件(statements.json)
    基于安全的原因,这个文件必须通过SSL的GET请求获得。你可以代开一个文本编辑器,然后写入如下形式的JSON:

下一步就是在Xcode中设置你的Apple ID。可以直接使用你iPhone上的ID,但是假如你开公司的话,那么你必须要创建一个独立的新的Apple ID。当然,如果你已经有了一个付费的开发者账号的话,你应该毫不犹豫的使用它。

在菜单Xcode->preference中找到Accounts。

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.mycompany.myapp",
    "sha256_cert_fingerprints": ["6C:EC:C5:0E:34:AE....EB:0C:9B"]
  }
}]

99696大富豪棋牌 22

可以在AndroidManifest.xml 文件中找到app的package name。你还需要通过在终端中执行ava keytool 产生一个sha256指纹:
keytool -list -v -keystore /path/to/app/release-key.keystore

账户设置

你需要向keystore添加持有app release keys的 app路径。这个路径依赖于项目设置,因此不同的app是不同的。可以在谷歌的文档中找到更多关于如何找到keystore的信息。
最后,上传这个文件到服务器的/.well-known/statements.json。为了避免今后每个app链接请求都访问网络,安卓只会在app安装的时候检查这个文件。如果你能在请求https://yourdomain.com/.well-known/statements.json 的时候看到这个文件(替换成自己的域名哈),那么可以继续下一步了。
注:目前可以通过http获得这个文件,但是在M最终版里则只能通过HTTPS验证。确保你的web站点支持HTTPS请求。

点击左下角的➕按钮,然后输入Apple ID。

  1. 在app中处理深度链接
    到现在,如果你已经有了一个处理深度链接的activity,那么我们已经准备好处理app links了。
    如果没有,你需要创建一个能处理深度链接的activity。这个activity的目的是为了实现一种这样的机制:负责捕获与解析深度链接,同时转发用户到正确的视图。

Xcode会要求你输入Apple ID:

本文由99696大富豪棋牌发布于关于我们,转载请注明出处:用户点击一个web链接就能直接跳转到app,你都只

关键词: