美文网首页
Scheme之Android与iOS的简单实现

Scheme之Android与iOS的简单实现

作者: smallgrey | 来源:发表于2019-04-11 17:08 被阅读0次

    iOS的URL Scheme的实现比较简单 

    打开project 点击工程名 -> info -> URL type 点击加号 如图 图片来自于(https://www.jianshu.com/p/f367b4a5e871

    图中的URL Scheme是必填的其他的随意

    在网页调用App时 用scheme中的值加“://”  例:“com.xhnp://”这样就可以直接调用App,在“://”后面可以传参数也可以不传

    App调用时 写一个button的点击事件,里面写

            let urlString = "com.xhnp://"

            leturl = URL(string: urlString)

            UIApplication.shared.open(url!)

    就可以调用。

    已上就是iOS的Scheme实现。

    Android的实现,在AndroidManifest.xml :

    <activity

        android:name="xxxxxActivity"

            ...>

        <intent-filter>

                <!-- 上面三个是必须的 -->

                <action android:name="android.intent.action.VIEW"/>

                <category android:name="android.intent.category.DEFAULT"/>

                <category android:name="android.intent.category.BROWSABLE"/>

                <!-- scheme  这个是必须的,其他host等不是必须的 -->

                 <data   android:scheme="com.xhnp"/>

        </intent-filter>

    </activity>

    Android的scheme 不能有大写字母

    网页跳转的时候:有时会因为浏览器的原因不能进行跳转(我出现的问题是网页跳转会闪以下然后返回网页),解决方案找个好的浏览器。

    App跳转的时候:同样找个button写点击事件

        Uri uri = Uri.parse(urlString);

    Intent intent =new Intent(Intent.ACTION_VIEW,uri);

    intent.addCategory(Intent.CATEGORY_BROWSABLE);

    intent.addCategory(Intent.CATEGORY_DEFAULT);

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    startActivity(intent);

    其中

    intent.addCategory(Intent.CATEGORY_BROWSABLE);

    intent.addCategory(Intent.CATEGORY_DEFAULT);

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    我看的其他人写的不要这三行也可以进行跳转,我的需要加这三行才能进行跳转。

    还有一个小问题就是跳转后点击返回键会返回桌面有的手机会返回跳转前的App

    以上就是Android的Scheme实现。

    相关文章

      网友评论

          本文标题:Scheme之Android与iOS的简单实现

          本文链接:https://www.haomeiwen.com/subject/ivcxwqtx.html