我正在建立一个带有离子和cordova的自定义拨号器应用程序,我想让我的应用程序替换原生的android拨号器,我正在寻找那个,我发现我必须在清单文件中添加一些设置该应用程序,但在十字路口我找到了manifest.json,并查看他们的网站编辑此文件,但事实证明,他们只有两个设置,离子和权限,但在我的情况下,我有这些设置将它们放在清单文件中
<intent-filter>
<action android:name="android.intent.action.CALL_BUTTON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
所以,有什么帮助可以添加这些设置吗?
答案 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平台。除非另有说明,否则Android 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;,重新构建了我的人行横道应用程序,它按预期工作。
祝你好运