npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@tool-developer/deeplink

v0.0.3

Published

deep links to mobile apps

Downloads

5

Readme

@tool-developer/deeplink

该方案为整合解决方案,支持微信标签方式,Universal link,Scheme URL,itunes URL等方式。

DeepLink

import {DeepLink,setUniversalJumpLinks} from '@tool-developer/deeplink'
//
setUniversalJumpLinks([
  //
])
// ...
const el = DeepLink({

})
//...

1.微信标签方式

  wx >= 7.0.12
  ios >= 10.3
  android >= 5.0 
  {
    wxConfig,
    wxConfigError,
    launchOptions:{
      appid,// app必填
      username,// 小程序必填
    }
  }
  1. ios支持universal link方式
  非微信环境(safari浏览器):
    ios >= 9.0
  微信环境:
    wx >= 7.0.7
    ios >= 12.0

相关参数说明:

  {
    universalURL,// 必填,不填写也不会进入该流程
    universalOptions,// universal参数
    supportUniversal,// 默认未true,设置为false时,不仅如此该流程
    supportLaunch:'universal', // 调试时候使用,直接进入该流程
  }
  1. scheme url方式

相关参数说明:

  {
    schemeURL,// itunes url
    schemeOptions,// scheme 参数处理
    iosSchemeURL,// 针对ios的scheme url
    androidSchemeURL,// 针对android的scheme url
    supportScheme,// 默认未true,设置为false时,不仅如此该流程
    supportLaunch:'scheme', // 调试时候使用,直接进入该流程
  }
  1. ios支持itunes url方式

相关参数说明:

  {
    itunesURL,// itunes url
    iphoneItunesURL,// 针对iphone的itunes url
    ipadItunesURL,// 针对ipad的itunes url
    supportItunes,// 默认未true,设置为false时,不仅如此该流程
    supportLaunch:'itunes', // 调试时候使用,直接进入该流程
  }
  1. 自定义页面提示浏览器打开(跳出微信)

综上所述: 如果要求在微信环境打开APP的话,需要:

  ios >= 10.3 && wx >= 7.0.12 (微信标签方式)
  ios >= 12.0 && wx >= 7.0.7 (universal link方式)
  或者
  android >= 5.0 && wx >= 7.0.12 (微信标签方式)

举例说明:

参考example目录

wxConfig 微信配置参数

  wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,公众号的唯一标识
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名
    jsApiList: [] // 必填,需要使用的JS接口列表
  });

文档参考:JS-SDK说明文档

launchButtonView

  {
    onClick:({e.detail})=>{},// 自定义点击,返回true可阻止内部默认行为
    text:'打开',// 按钮文字或者内容
    style:{},//自定义样式
    cls:'launch-btn-view',//按钮class
  }

launchTipsView

  {
    style:{},//自定义背景遮罩样式
    cls:'launch-tips-view',//按钮class
  }

launchOptions, wx-open-launch-*选项

相关参数说明文档:开放标签说明文档

  1. wx-open-launch-weapp,打开小程序
  {
    id:'',//id,必填,需要具有唯一性,否则不能接收回调
    username:'',//所需跳转的小程序原始id,即小程序对应的以gh_开头的id
    path:''//所需跳转的小程序内页面路径及参数
  }

备注:对于path属性,所声明的页面路径必须添加.html后缀,如pages/home/index.html。

  1. wx-open-launch-app,打开APP 获得该接口权限,需同时满足如下条件:
  服务号已认证
  开放平台账号已认证
  服务号与开放平台账号同主体

相关参考:微信内网页跳转APP功能

  {
    id:'',//id,必填,需要具有唯一性,否则不能接收回调
    appid:'',
    extinfo:`${JSON.stringify(data)}`    
  }

launchSuccess?, 标签方式打开成功回调

可选

launchError?, 标签方式打开失败回调,返回true,可阻止内部默认行为

可选

launchErrorToDownload?,launch启动失败后直接进入下载流程,默认true

可选

wxConfigError?, 配置错误回调

可选

packageName?, 应用包名

可选

iosPackageName?, ios应用包名

可选 优先级比packageName高

androidPackageName?, android应用包名

可选 优先级比packageName高

downloadURL?, 下载地址

可选,建议提供应用包下载地址:http://a.app.qq.com/o/simple.jsp

已引入静默唤起scheme url方式,可不使用应用宝下载地址,可接入一个我们自己的带有下载APP功能的中间页地址

不配置downloadURL,且autoSchemeURL为true时,点击操作会走scheme url(静默唤起的方式在某些设备上交互体验不是很好)

universalURL?, Universal link 地址

可选 Universal link 地址,也可以作为引导提示链接地址

universalOptions

由于APP对于Universal link方式,通过参数schemeUrl使用了scheme url的处理流程, 所以,对于universal options的设置可以直接使用scheme的配置,不需要额外进行配置。

// 方式一,默认
universalOptions:true,// 使用scheme配置生成schemeUrl
// 方式二
universalOptions:false,// 不使用scheme配置参数
// 方式三,自定义参数,不传递schemeUrl,会使用scheme配置生成schemeUrl
universalOptions:{
  schemeUrl:'',
  //...
}

注意:内部已对universalOptions中的value值进行了decodeURIComponent编码处理,外部不要进行编码处理。

errorPageURL?, 错误引导页地址

可选 打开错误时引导提示链接地址,优先级比universalURL高

schemeURL?, Scheme url

可选

androidSchemeURL?,android Scheme url

可选 优先级比schemeURL高

iosSchemeURL?,ios Scheme url

可选 优先级比schemeURL高

schemeOptions

// 方式一,默认
schemeOptions:true,// 微信环境中点击,会提示浏览器打开
// 方式二
schemeOptions:false,// 微信环境中点击,不提示,走应用宝下载/打开流程
// 方式三,传递参数
schemeOptions:{
  url:'',
  //...
}

autoSchemeURL

默认接入后满足条件,会自动进入scheme url流程,默认是true。可设置为false,手动操作。

不需要外部进行完整scheme url地址拼接,参数部分可以设置到schemeOptions上。

通过scheme url方式唤起小程序

wxAppSchemeURL:小程序scheme url,具体参考文档

autoWxAppSchemeURL:是否自动唤起小程序,默认为false

注意:微信版本要满足>=8.0.6,才会有效 参考文档获取小程序Scheme Url

itunesURL?, itunes url

可选

ipadItunesURL?, ipad itunes url

可选 优先级比itunesURL高

iphoneItunesURL?, iphone itunes url

可选 优先级比itunesURL高

supportLaunch?, 手动配置进入方案

可选值,false|true|universal|scheme|itunes,默认false

  // false: 默认值,包含标签流程在内的正常流程
  // true: 非universal|scheme|itunes字符串,进入非标签流程之外的正常流程。故进入错误流程时会添加该参数值。
  // universal:进入Universal link方案,调试使用
  // scheme: 进入scheme方案,调试使用
  // itunes: 进入itunes方案,调试使用
  // wxscheme: 进入小程序scheme方案,调试使用

注意:其中false和true,非数据类型上的布尔值 因Universal link链接可作为公共提示页,故进入错误流程时会添加该参数

supportScheme?, 支持Scheme url方案

可选,默认true

supportItunes?, 支持itunes url方案

可选,默认true

supportUniversal?, 支持Universal kink方案

可选,默认true

wxAuthRequired 当前业务页面是否需要微信授权

默认false,需要微信授权的页面设置为true,否则以当前页面进入中转页,又会进入微信授权流程。

设置为true,原来的应用宝下载流程,会走universalURL的流程(提示微信打开,静默唤起APP)。

supportDeepLinkJumpQuery,是否支持中间页跳转流程处理

默认为true,中转流程处理会在下载和universal流程页面添加deepLinkJumpQuery参数

handle**Url

针对url地址参数,额外添加自定义处理,只需将处理结果返回即可

  handleDownloadSchemeUrl(url,params,os){
    //
    return url;
  }