本文首发于Daniate的个人网站,文章链接:https://daniate.com/archives/44/
一般的操作流程
- 分享链接到微信(分享到朋友圈或分享给好友)
- 在微信中点击该链接后,在微信中展示网页,页面中有“App内打开”按钮
- 点击“App内打开”按钮后,在微信内进入到另外一个网页,页面中显示:
“点击右上角的‘...’按钮,选择‘在Safari中打开’”
- 在
Safari
中打开后,会弹出提示:“在‘xxx’中打开链接吗?”
,点击“打开”
,自动跳转到应用内,并用某个页面展示内容
实现上述操作所包含的功能
配置Information Property List
在项目的Information Property List
文件中,进行URL types
相关配置:
- 微信
- 自定义Scheme
<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>
微信分享
[WXApiRequestHandler sendLinkURL:xxxURLString
TagName:nil
Title:title
Description:desc
ThumbImage:thumb
InScene:scene];
在网页中加入相关的跳转代码
在需要进行跳转的网页中加入:
<!-- 2秒后自动跳转到xxxScheme://xxx -->
<meta http-equiv="refresh" content="2;url=xxxScheme://xxx" />
但,这种方式会导致用户无法与页面进行交互。
如果想在用户触发网页上的某个元素时,进行跳转,就需要使用Location对象
的href属性
或assign()方法
。
href属性
及assign()方法
的相关说明,见以下链接:
本作品由Daniate采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。