Android与iOS自定义URL Scheme唤醒app

Android与iOS自定义URL Scheme唤醒app

需求

手机浏览器中的网页需要唤醒app的特定页面及向app页面传递参数。

实现方案

Android与iOS端均可通过配置自定义的URL Scheme来达到外部唤醒页面的目的。

Android

定义 URL Scheme

在AndroidManifest.xml中对需要唤醒的Activity配置

  <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="article" android:scheme="jaren" />
      intent-filter>

通过配置host与scheme就可以定位到此页面,唤醒协议jaren://article,需要传递参数可拼接query参数
jaren://article?tid=20

获取参数

在Activity的onCreate方法中获取网页传递的参数,如获取文章的id然后执行网络请求获取文章详情的数据。

    Intent intent = getIntent();
        if (Intent.ACTION_VIEW.equals(intent.getAction())){
            Uri uri=intent.getData();
            if (uri!=null){
                articleId=uri.getQueryParameter("tid");
            }
        }

iOS

定义 URL Scheme

iOS在info.plist文件URL types节点下添加需要自定义的URL Schemejaren

获取参数并跳转到相应页面

AppDelegate.m实现方法

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
    if ([url.scheme isEqualToString:@"jaren"]) {

        [self jumpPage:url];
        return true;
    }
    return false;
}

jumpPage方法则是匹配url字符串来定位特定页面,url.query是传递的参数字段。

网页调用协议

网页端调用定义的协议

    <div>
        <a href="jaren://article?aid=20">app打开文章a>
    div>

这样在浏览器中打开此网页,点击app打开文章就可以唤醒app的文章详情页面。

你可能感兴趣的:(Android,iOS,URL,Scheme,唤醒app)