如何在manifest.json中为crosswalk-project添加intent-filter标签?

时间:2015-04-09 10:20:39

标签: android ionic crosswalk-runtime

我正在建立一个带有离子和cordova的自定义拨号器应用程序,我想让我的应用程序替换原生的android拨号器,我正在寻找那个,我发现我必须在清单文件中添加一些设置该应用程序,但在十字路口我找到了manifest.json,并查看他们的网站编辑此文件,但事实证明,他们只有两个设置,离子和权限,但在我的情况下,我有这些设置将它们放在清单文件中

<intent-filter>
     <action android:name="android.intent.action.CALL_BUTTON" />
     <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

所以,有什么帮助可以添加这些设置吗?

3 个答案:

答案 0 :(得分:1)

我不太了解使用manifest.json这么做,但一种快捷的方法是直接更改Android清单模板。它位于&#34; Path / To / Crosswalk / template / AndroidManifest.xml&#34;。

<!-- <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />-->
        <action android:name="android.intent.action.CALL_BUTTON" />
        <category android:name="android.intent.category.DEFAULT" />

答案 1 :(得分:0)

虽然sjtaheri的答案是有效的,但还有另一种方法是创建一个cordova插件。在您的情况下,它只包含一个带有Android部分的plugin.xml,其中添加了intent过滤器:

<?xml version="1.0" encoding="UTF-8"?>

<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
  xmlns:android="http://schemas.android.com/apk/res/android"
  id="com.demo.plugin.dialer"
  version="1.0.0">
    <name>DialerPlugin</name>
    <description>Blah</description>
    <license>MIT 3.0</license>
    <author>Donald Duck</author>
    <keywords>dialer, ionic, crosswalk</keywords>

    <engines>
       <engine name="cordova" version=">=3.1.0" platform="android" />
    </engines>


    <!-- android -->
    <platform name="android">
      <config-file target="AndroidManifest.xml" parent="/manifest/application/activity">
        <intent-filter>
           <action android:name="android.intent.action.CALL_BUTTON" />
           <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </platform>

使用“ionic plugin add plugin_directory”,该插件将添加到您的离子应用程序中,并将intent过滤器添加到清单中。

虽然它看起来有点复杂,但它允许随时向您的应用添加intent过滤器,即使您出于某种原因必须删除并重新创建Android平台。除非另有说明,否则A​​ndroid Manifest的手动更改将被删除。

如果你的应用有多个活动,这可能会变得更加困难,因为过滤器会被添加到所有活动中。

答案 2 :(得分:0)

如前面的评论中所述,您可以更改crosswalk AndroidManifest.xml模板文件中的默认值。 我发现了:

<强> /用户/&LT; my_usr &gt; /。nvm / versions / node / v4.2.1 / lib / node_modules / crosswalk-app-tools / android / data / AndroidManifest.xml.tpl

编辑它以更改&#34; android:minSdkVersion &#34;至&#34; 16&#34;和#34; android:targetSdkVersion&#34;到了&#34; 23&#34;,重新构建了我的人行横道应用程序,它按预期工作。

祝你好运