iOS微信分享及从Safari跳转到App

一般的操作流程

  1. 分享链接到微信(分享到朋友圈或分享给好友)
  2. 在微信中点击该链接后,在微信中展示网页,页面中有“App内打开”按钮
  3. 点击“App内打开”按钮后,在微信内进入到另外一个网页,页面中显示:“点击右上角的‘...’按钮,选择‘在Safari中打开’”
  4. Safari中打开后,会弹出提示:“在‘xxx’中打开链接吗?”,点击“打开”,自动跳转到应用内,并用某个页面展示内容

实现上述操作所包含的功能

配置Information Property List

在项目的Information Property List文件中,进行URL types相关配置:

  • 微信
  • 自定义Scheme
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>wx......</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>xxxName</string>
<key>CFBundleURLSchemes</key>
<array>
<string>xxxScheme</string>
</array>
</dict>
</array>

微信分享

1
2
3
4
5
6
[WXApiRequestHandler sendLinkURL:xxxURLString 
TagName:nil
Title:title
Description:desc
ThumbImage:thumb
InScene:scene];

在网页中加入相关的跳转代码

在需要进行跳转的网页中加入:

1
2
<!-- 2秒后自动跳转到xxxScheme://xxx -->
<meta http-equiv="refresh" content="2;url=xxxScheme://xxx" />

但,这种方式会导致用户无法与页面进行交互。

如果想在用户触发网页上的某个元素时,进行跳转,就需要使用Location对象href属性assign()方法

href属性assign()方法的相关说明,见以下链接:


iOS微信分享及从Safari跳转到App
https://daniate.github.io/2016/10/12/iOS微信分享及从Safari跳转到App/
作者
Daniate
发布于
2016年10月12日
许可协议