C# 为什么照相机不能在Xamarin WebView上工作?
我有一个简单的Xamarin页面,在WebView中调用WebRTC页面: 该页面在同一Android设备上的Chrome上运行良好,但在WebView上不工作,因为没有错误 AndroidManifest.xaml:C# 为什么照相机不能在Xamarin WebView上工作?,c#,xamarin,xamarin.forms,webview,C#,Xamarin,Xamarin.forms,Webview,我有一个简单的Xamarin页面,在WebView中调用WebRTC页面: 该页面在同一Android设备上的Chrome上运行良好,但在WebView上不工作,因为没有错误 AndroidManifest.xaml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.dpwcam">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
<application android:label="DPWCAM.Android" android:networkSecurityConfig="@xml/network_security_config"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
</manifest>
WebViewPage.xaml:
<StackLayout>
<Entry x:Name="CameraName"></Entry>
<Button x:Name="Navigate" Clicked="NavigateButton_Clicked" Text="Save"></Button>
<dpwcam:MyWebView
x:Name="webView"
HeightRequest="500"
WidthRequest="500"/>
</StackLayout>
然后我开始在谷歌上搜索答案,但没有找到解决我的问题的办法。我找到的所有答案都是关于权限的,我已经做到了
那怎么了?谢谢当targetSdkVersion大于23时,可能会出现无法显示移动视频的情况(摄像头未自动打开),需要动态授权。您似乎没有正确请求运行时权限。@LeoZhu MSFT谢谢您的回答,这是关于运行时权限的,是我的错:(@Cheesebaron谢谢你说得对:)
public class MyWebView : WebView
{
}
<StackLayout>
<Entry x:Name="CameraName"></Entry>
<Button x:Name="Navigate" Clicked="NavigateButton_Clicked" Text="Save"></Button>
<dpwcam:MyWebView
x:Name="webView"
HeightRequest="500"
WidthRequest="500"/>
</StackLayout>
void NavigateButton_Clicked(object sender,EventArgs args)
{
_cameraName = CameraName.Text;
webView.Source = $"https://cam.AnyDomain.com.tr?Name={_cameraName}";
}