我目前正在开发一个音乐调谐器,它使用html5和webview来显示“应用程序”。我已经在manifest中编写了所需的所有权限,我认为webview需要另一个权限。
我现在使用这个https://jbergknoff.github.io/guitar-tuner/作为一个示例重定向页面
这是我的manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.raynordev.projectrosin">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MICROPHONE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.hardware.audio.low_latency" />
<uses-feature android:name="android.hardware.audio.pro" />
<uses-feature android:name="android.hardware.microphone" android:required="true"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.raynordev.projectrosin.HomeActivity">
</activity>
</application>
</manifest>
这是我的.java
public class HomeActivity extends AppCompatActivity {
private WebView wv;
private String TAG = "HomeActivity";
private static final int REQUEST_INTERNET = 200;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
WebView wv = (WebView) findViewById(R.id.webView);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wv.setWebViewClient(new WebViewClient());
wv.setWebChromeClient(new WebChromeClient());
wv.loadUrl("https://jbergknoff.github.io/guitar-tuner/");
}
}
如果需要我提供更多信息,请告诉我。
谢谢大家!!
3条答案
按热度按时间wswtfjt71#
你可以使用下面的代码,我从http://web.archive.org/web/20160111030837/http://developer.android.com/training/permissions/requesting.html复制-
示例:
主要活动
manifest. permission. RECORD_AUDIO,MY_PERMISSIONS_REQUEST_RECORD_AUDIO);}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
Mainfest.xml:
Build.gradle:
qyswt5oh2#
总而言之,您需要以下组件:
MODIFY_AUDIO_SETTINGS
权限。1.一个
WebChromeClient
并监听onPermissionRequest
的回调1.在这个回调函数中,检查
request
对象中的资源,创建这个request
对象的全局变量,迭代并在PermissionRequest
类中查找特定的权限,例如PermissionRequest.RESOURCE_VIDEO_CAPTURE
,它转换为Manifest.permission.CAMERA
权限,检查您的应用是否具有此权限,如果没有,使用任何您希望的机制请求,如果是,请执行4。1.在权限回调中,或者如果权限被授予,使用request对象来授予权限ex.
request.grant(new String[]{PermissionRequest.RESOURCE_VIDEO_CAPTURE})
,这样就可以开始了。摘录:
希望这个有用。
Google的例子:https://github.com/googlesamples/android-PermissionRequest
ruarlubt3#
重新加载webview的问题,经过太多的研究,发现了这段代码,并创建了下面的代码:
此链接中的更多信息**Android Webview**